Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS画外音状态_Ios_Accessibility_Voiceover_Uiaccessibility - Fatal编程技术网

iOS画外音状态

iOS画外音状态,ios,accessibility,voiceover,uiaccessibility,Ios,Accessibility,Voiceover,Uiaccessibility,我正在尝试向已经开发的iOS应用程序添加辅助功能 如果iPhone设置的辅助功能菜单中的画外音选项处于打开状态,我希望它们会显示一些UI功能(例如按钮),如果画外音处于关闭状态,它们不会显示 是否有办法检查画外音选项是否打开?在ViewDIdLoad中 BOOL UIAccessibilityIsVoiceOverRunning(); [[NSNotificationCenter defaultCenter] addObserver:self

我正在尝试向已经开发的iOS应用程序添加辅助功能

如果iPhone设置的辅助功能菜单中的画外音选项处于打开状态,我希望它们会显示一些UI功能(例如按钮),如果画外音处于关闭状态,它们不会显示

是否有办法检查画外音选项是否打开?

在ViewDIdLoad中

BOOL UIAccessibilityIsVoiceOverRunning();
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(voiceOverStatusChanged)
                                             name:UIAccessibilityVoiceOverStatusChanged
                                           object:nil];


- (void)voiceOverStatusChanged
{
    if(!UIAccessibilityIsVoiceOverRunning())
    {
        //do your changes
    }
}

作为对之前所有正确答案的补充,自iOS11起,根据此,将使用的新通知名称为:

  • UIAccessibilityVoiceOverStatusIDChange
    (SWIFT<4.2)
  • UIAccessibilityVoiceOverStatusIDChangeNotification
    (ObjC)
。。。而
UIAccessibilityVoiceOverStatusChanged
则不推荐使用


编辑对于SWIFT 4.2==>
UIAccessibility.voiceOverStatusDidChangeNotification
对于SWIFT 4.2和更新版本,您可以检查UIKit提供的以下布尔值:


UIAccessibility.IsVoiceOverflowing

Mac有类似的功能吗?我的Cocoa太生锈了,无法回答,但看起来没有。也许可以在Apple开发者论坛上询问。在Swift中:
UIAccessibility.IsVoiceOverflowing