使用与当前设备语言不同的系统视图语言

Imr*_*nyi 6 ios

在一个应用程序中,我只想支持德语.这对我自己定义的所有文本都很好,但我无法更改系统提供的视图显示的文本,例如:取消按钮UISearchBar:

UISearchBar具有英语本地化

如果设备语言设置为德语,则取消按钮会正确显示"Abbrechen".但是,如果我将设备语言设置为英语(或任何其他语言),则按钮显示"取消",这是不正确的,因为应用程序中的所有内容都是德语,所以我也希望这个按钮也是德语.是否有可能完成这项工作?我做错了什么?

  • 我只有一个de.lproj文件夹,我没有en.lproj文件夹.我在de.lproj文件夹中有InfoPlist.strings和我的主要nib文件.
  • 我用来访问搜索栏UIViewControllersearchDisplayController属性的内容视图的nib 也在de.lproj文件夹中.
  • 我已将.pbxproj中的开发区域设置为德语:

    developmentRegion = de;
    
    Run Code Online (Sandbox Code Playgroud)
  • 我在Info.plist文件中将"Localization native development region"设置为"de":

    <key>CFBundleDevelopmentRegion</key>
    <string>de</string>
    
    Run Code Online (Sandbox Code Playgroud)

Mut*_*tix 0

您可以通过设置 UISearchBar 的属性来轻松更改其占位符文本placeholder

然而,没有任何简单的钩子可以到达取消按钮。

访问搜索栏取消按钮的一种方法是浏览其子视图:

UIButton *cancelButton = nil;

    for(UIView *subView in [searchBar subviews])
    {
        if([subView isKindOfClass:[UIButton class]])
        {
            cancelButton = (UIButton*)subView;
            [cancelButton setText:@"Abbrechen"];
        }
    }
Run Code Online (Sandbox Code Playgroud)