iOS画外音状态
我正在尝试向已经开发的iOS应用程序添加辅助功能 如果iPhone设置的辅助功能菜单中的画外音选项处于打开状态,我希望它们会显示一些UI功能(例如按钮),如果画外音处于关闭状态,它们不会显示 是否有办法检查画外音选项是否打开?在ViewDIdLoad中iOS画外音状态,ios,accessibility,voiceover,uiaccessibility,Ios,Accessibility,Voiceover,Uiaccessibility,我正在尝试向已经开发的iOS应用程序添加辅助功能 如果iPhone设置的辅助功能菜单中的画外音选项处于打开状态,我希望它们会显示一些UI功能(例如按钮),如果画外音处于关闭状态,它们不会显示 是否有办法检查画外音选项是否打开?在ViewDIdLoad中 BOOL UIAccessibilityIsVoiceOverRunning(); [[NSNotificationCenter defaultCenter] addObserver:self
BOOL UIAccessibilityIsVoiceOverRunning();
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(voiceOverStatusChanged)
name:UIAccessibilityVoiceOverStatusChanged
object:nil];
- (void)voiceOverStatusChanged
{
if(!UIAccessibilityIsVoiceOverRunning())
{
//do your changes
}
}
作为对之前所有正确答案的补充,自iOS11起,根据此,将使用的新通知名称为:
(SWIFT<4.2)UIAccessibilityVoiceOverStatusIDChange
(ObjC)UIAccessibilityVoiceOverStatusIDChangeNotification
UIAccessibilityVoiceOverStatusChanged
则不推荐使用
编辑对于SWIFT 4.2==>
UIAccessibility.voiceOverStatusDidChangeNotification
对于SWIFT 4.2和更新版本,您可以检查UIKit提供的以下布尔值:
UIAccessibility.IsVoiceOverflowing
Mac有类似的功能吗?我的Cocoa太生锈了,无法回答,但看起来没有。也许可以在Apple开发者论坛上询问。在Swift中:UIAccessibility.IsVoiceOverflowing