首页 文章

iOS画外音状态

提问于
浏览
57

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

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

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

4 回答

  • 3
    BOOL UIAccessibilityIsVoiceOverRunning();
    
  • 3

    在ViewDIdLoad中

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(voiceOverStatusChanged)
                                                 name:UIAccessibilityVoiceOverStatusChanged
                                               object:nil];
    
    
    - (void)voiceOverStatusChanged
    {
        if(!UIAccessibilityIsVoiceOverRunning())
        {
            //do your changes
        }
    }
    
  • 101

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

    UIAccessibility.isVoiceOverRunning

  • 29

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

    • UIAccessibilityVoiceOverStatusDidChange (SWIFT <4.2) .

    • UIAccessibilityVoiceOverStatusDidChangeNotification (ObjC) .

    ...虽然 UIAccessibilityVoiceOverStatusChanged 已被弃用 .

    EDIT for SWIFT 4.2 ==> UIAccessibility.voiceOverStatusDidChangeNotification

相关问题