iOS Voiceover статус - PullRequest
       49

iOS Voiceover статус

59 голосов
/ 12 января 2012

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

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

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

Ответы [ 4 ]

104 голосов
/ 12 января 2012
BOOL UIAccessibilityIsVoiceOverRunning();
30 голосов
/ 05 декабря 2013

в ViewDIdLoad

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


- (void)voiceOverStatusChanged
{
    if(!UIAccessibilityIsVoiceOverRunning())
    {
        //do your changes
    }
}
3 голосов
/ 22 октября 2018

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

UIAccessibility.isVoiceOverRunning

3 голосов
/ 06 марта 2018

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

  • UIAccessibilityVoiceOverStatusDidChange (SWIFT <4.2). </li>
  • UIAccessibilityVoiceOverStatusDidChangeNotification (ObjC).

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...