我正在编写一个iOS应用程序,它在多语言环境中运行。因此,程序可以使用与系统语言不同的语言操作。示例:我的手机以英文运行,程序以德语或法语运行。所有文本都以正确的语言显示。
现在我想,VoiceOver使用正确的语言说出文本,使用以下方法可以很好地工作:
- (void)setVoLanguage:(NSObject*)object
{
if (prefLanguage == 0){
[object setAccessibilityLanguage:@"de-DE"];
} else {
[object setAccessibilityLanguage:@"fr-FR"];
}
}
我试图让VoiceOver使用以下方法之一以正确的语言说出导航控制器中的文本:
[self setVoLanguage:navController];
[self setVoLanguage:navController.title];
[self setVoLanguage:navController.navigationBar.topItem];
[self setVoLanguage:navController.navigationBar.backItem];
[self setVoLanguage:navController.navigationBar.topItem.title];
[self setVoLanguage:navController.navigationBar.backItem.title];
[self setVoLanguage:navController.navigationBar.topItem.titleView];
[self setVoLanguage:navController.navigationBar.backItem.titleView];
但结果是,导航栏中的德语或法语文本总是使用英语发音。
有人知道如何在导航栏中切换VoiceOver语言吗?
谢谢。
更新:这是一个解决方法,适用于我使用iOS 5.1.1:
- (NSString *)accessibilityLanguage {
cnlAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
if (appDelegate != nil) {
if ([appDelegate prefLanguage] == 0) {
return @"de-DE";
} else {
return @"fr-FR";
}
}
return @""; // this line should never be reached
}
我的appDelegate对象是存储当前语言的对象。覆盖所有对象的accessibilityLanguage似乎可以解决问题。
我希望这对那里的人有用。
答案 0 :(得分:0)
通过iOS开发人员库,它看起来像是navController和navController。你试过了吗?