我正在尝试将辅助功能添加到已经开发的 iOS 应用程序中。
如果 iPhone 设置的辅助功能菜单中的 VoiceOver 选项打开,我希望它们显示几个 UI 功能(例如按钮),如果画外音关闭,则不显示。
有没有办法检查画外音选项是否打开?
我正在尝试将辅助功能添加到已经开发的 iOS 应用程序中。
如果 iPhone 设置的辅助功能菜单中的 VoiceOver 选项打开,我希望它们显示几个 UI 功能(例如按钮),如果画外音关闭,则不显示。
有没有办法检查画外音选项是否打开?
BOOL UIAccessibilityIsVoiceOverRunning();
在 ViewDIdLoad
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(voiceOverStatusChanged)
name:UIAccessibilityVoiceOverStatusChanged
object:nil];
- (void)voiceOverStatusChanged
{
if(!UIAccessibilityIsVoiceOverRunning())
{
//do your changes
}
}
对于 Swift 4.2 和更新版本,您可以检查 UIKit 提供的以下布尔值:
UIAccessibility.isVoiceOverRunning
作为对之前所有正确答案的补充,自 iOS11 以来,根据此Accessibility options recap ,要使用的新通知名称为:
UIAccessibilityVoiceOverStatusDidChange
(SWIFT < 4.2)。UIAccessibilityVoiceOverStatusDidChangeNotification
(对象)。...虽然UIAccessibilityVoiceOverStatusChanged
已弃用。
编辑SWIFT 4.2 == >UIAccessibility.voiceOverStatusDidChangeNotification