如何捕捉iPhone VoiceOver事件?

时间:2011-09-06 02:37:32

标签: iphone ios voiceover

有没有办法在我的应用程序中捕获[VoiceOver - ON / OFF]事件?

我需要在两种情况下使用画外音和普通方式使我的菜单表现不同。

3 个答案:

答案 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);
}