Ответ 1
BOOL UIAccessibilityIsVoiceOverRunning();
Я пытаюсь добавить функции доступности в приложение iOS, которое уже было разработано.
Есть несколько функций пользовательского интерфейса (например, кнопки), которые мне нравятся, если они отображаются, если включена опция VoiceOver в меню доступности настроек iPhone и не отображаются, если озвучка выключена.
Есть ли способ проверить, включена ли функция голосового управления?
BOOL UIAccessibilityIsVoiceOverRunning();
В ViewDIdLoad
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(voiceOverStatusChanged)
name:UIAccessibilityVoiceOverStatusChanged
object:nil];
- (void)voiceOverStatusChanged
{
if(!UIAccessibilityIsVoiceOverRunning())
{
//do your changes
}
}
В качестве дополнения ко всем предыдущим правильным ответам, начиная с iOS11, будет использоваться новое имя уведомления:
UIAccessibilityVoiceOverStatusDidChange
(SWIFT <4.2).UIAccessibilityVoiceOverStatusDidChangeNotification
(ObjC).... в то время как UIAccessibilityVoiceOverStatusChanged
устарела.
РЕДАКТИРОВАТЬ для SWIFT 4.2 ==> UIAccessibility.voiceOverStatusDidChangeNotification
Для Swift 4.2 вы можете проверить следующие логические значения, предоставляемые UIKit:
UIAccessibility.isVoiceOverRunning