Iphone iOS4 UI搜索栏取消按钮的本地化

Iphone iOS4 UI搜索栏取消按钮的本地化,iphone,Iphone,我已经在3.1.3上测试了我的应用程序,当设备语言设置为德语时,它会显示本地化为德语的ui搜索栏cancel按钮。在iOS4上,它显示为“取消”。在iOS4中是否需要执行任何特定操作来触发取消按钮显示为本地化字符串?更改取消按钮标题: for (UIView *subview in [searchBar subviews]) { if ([NSStringFromClass([subview class]) isEqualToString:@"UINavigationButton"]){

我已经在3.1.3上测试了我的应用程序,当设备语言设置为德语时,它会显示本地化为德语的
ui搜索栏
cancel按钮。在iOS4上,它显示为“取消”。在iOS4中是否需要执行任何特定操作来触发取消按钮显示为本地化字符串?

更改取消按钮标题:

for (UIView *subview in [searchBar subviews]) {
    if ([NSStringFromClass([subview class]) isEqualToString:@"UINavigationButton"]){
        // http://github.com/kennytm/iphone-private-frameworks/blob/master/UIKit/UINavigationButton.h
        [subview performSelector:@selector(setTitle:) withObject:@"newTitle"];
    }
}

您还可以找到“取消”按钮以查找尺寸为48,30的图元。使用
CGRect界限=[subview界限];CGSize size=bounds.size

在info.plist中将“本地化本地开发区域”设置为德语解决了此问题。请注意,它在模拟器中似乎不起作用。在设备上进行测试。如果您不想将类名作为字符串进行比较,我将在下面编写一个更通用的方法(在SDK更新后可能更健壮?)。很好的帖子,值得投票:)for(UIView*subview in[searchBar subview]){if([[subview class]isSubclassOfClass:[UIButton class]])[subview performSelector:@selector(setTitle:)with object:[[[LocaleManager sharedlocalmanager]languageDictionary]valueForKey:@“General”]valueForKey:@“cancelButtonTitle”];]