我正在尝试为已经开发的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以来,要使用的新通知名称是:
UIAccessibilityVoiceOverStatusDidChange
(SWIFT <4.2)。UIAccessibilityVoiceOverStatusDidChangeNotification
(ObjC)。...而UIAccessibilityVoiceOverStatusChanged
已被弃用。
编辑SWIFT 4.2 ==> UIAccessibility.voiceOverStatusDidChangeNotification