iOS画外音状态

问题描述 投票:59回答:4

我正在尝试为已经开发的iOS应用添加辅助功能。

如果iPhone设置的辅助功能菜单中的VoiceOver选项打开,并且如果画外音关闭则不显示,则我希望它们显示一些UI功能(例如按钮)。

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

ios accessibility voiceover uiaccessibility
4个回答
105
投票
BOOL UIAccessibilityIsVoiceOverRunning();

30
投票

在ViewDIdLoad中

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


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

4
投票

对于Swift 4.2,您可以检查UIKit提供的以下布尔值:

UIAccessibility.isVoiceOverRunning


2
投票

作为所有先前正确答案的补充,自iOS11以来,要使用的新通知名称是:

  • UIAccessibilityVoiceOverStatusDidChange(SWIFT <4.2)。
  • UIAccessibilityVoiceOverStatusDidChangeNotification(ObjC)。

...而UIAccessibilityVoiceOverStatusChanged已被弃用。

编辑SWIFT 4.2 ==> UIAccessibility.voiceOverStatusDidChangeNotification

© www.soinside.com 2019 - 2024. All rights reserved.