我正在尝试为已经开发的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) .
UIAccessibilityVoiceOverStatusDidChange
UIAccessibilityVoiceOverStatusDidChangeNotification (ObjC) .
UIAccessibilityVoiceOverStatusDidChangeNotification
...虽然 UIAccessibilityVoiceOverStatusChanged 已被弃用 .
UIAccessibilityVoiceOverStatusChanged
EDIT for SWIFT 4.2 ==> UIAccessibility.voiceOverStatusDidChangeNotification
UIAccessibility.voiceOverStatusDidChangeNotification
4 回答
在ViewDIdLoad中
对于Swift 4.2,您可以检查UIKit提供的以下布尔值:
UIAccessibility.isVoiceOverRunning
作为所有先前正确答案的补充,自iOS11以来,要使用的新通知名称是:
UIAccessibilityVoiceOverStatusDidChange
(SWIFT <4.2) .UIAccessibilityVoiceOverStatusDidChangeNotification
(ObjC) ....虽然
UIAccessibilityVoiceOverStatusChanged
已被弃用 .EDIT for SWIFT 4.2 ==>
UIAccessibility.voiceOverStatusDidChangeNotification