有没有办法在我的应用程序中捕获[VoiceOver - ON / OFF]事件?
我需要在两种情况下使用画外音和普通方式使我的菜单表现不同。
答案 0 :(得分:1)
UIAccessibilityIsVoiceOverRunning()
如果它正在运行,则返回BOOL
YES
。这是iOS 4及更高版本。
答案 1 :(得分:1)
如果您需要它作为通知,UIAccessibilityVoiceOverStatusChanged
(也是4.0 +)。
答案 2 :(得分:0)
在您的app delegate的applicationDidFinishLaunching:
方法中,订阅VoiceOver状态更改,如下所示:
// subscribing to VoiceOver change notification:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(didChangeVoiceOverSetting:)
name:UIAccessibilityVoiceOverStatusChanged
object:nil];
然后做你需要做的事。在我的应用程序中,我在代码的viewDidLoad方法中设置了大量的可访问性代码,因此最简单的方法是在VoiceOver更改时使应用程序崩溃并允许重新初始化所有内容:
- (void)didChangeVoiceOverSetting:(NSNotification *)dictionary {
// intentionally crashing the app if VoiceOver is changed
assert(false);
}