Подтвердить что ты не робот

Статус голосового управления iOS

Я пытаюсь добавить функции доступности в приложение iOS, которое уже было разработано.

Есть несколько функций пользовательского интерфейса (например, кнопки), которые мне нравятся, если они отображаются, если включена опция VoiceOver в меню доступности настроек iPhone и не отображаются, если озвучка выключена.

Есть ли способ проверить, включена ли функция голосового управления?

4b9b3361

Ответ 1

BOOL UIAccessibilityIsVoiceOverRunning();

Ответ 2

В ViewDIdLoad

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


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

Ответ 3

В качестве дополнения ко всем предыдущим правильным ответам, начиная с iOS11, будет использоваться новое имя уведомления:

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

... в то время как UIAccessibilityVoiceOverStatusChanged устарела.

РЕДАКТИРОВАТЬ для SWIFT 4.2 ==> UIAccessibility.voiceOverStatusDidChangeNotification

Ответ 4

Для Swift 4.2 вы можете проверить следующие логические значения, предоставляемые UIKit:

UIAccessibility.isVoiceOverRunning