【问题标题】:UISegmentedControl and localizationUISegmentedControl 和本地化
【发布时间】:2012-10-04 18:50:38
【问题描述】:

我有一个.xib 文件,附带不同语言的.strings 文件。 .xib 文件包含一个标签和一个UISegmentedControl

当要求 IB 本地化 .xib 文件时,我得到以下 .strings 文件:

"6.segmentTitles[0]" = "title1";
// ...More strings related to the segmented control...
"11.text" = "bla";

'bla' 字符串属于标签。

更改“bla”字符串会反映在运行时,而更改“title1”字符串则不会。有谁知道为什么?

【问题讨论】:

  • 有这个OpenRadar,但尚未分类。
  • 9 年后这个错误仍然存​​在。

标签: localization ios6 uisegmentedcontrol


【解决方案1】:

这个问题不是新问题,但由于它仍然没有任何答案,我将添加我的解决方案,因为它可能对其他人有所帮助。

通常,正如上面提到的,UISegmentedControl 段标题不提取本地化字符串是一个开放的错误。

- (void)viewDidLoad
{
    ...

    // Locale will be picked automatically by NSBundle.
    NSString *resourcePath  =[[NSBundle mainBundle] pathForResource:@"MainStoryboard" ofType:@"strings"];
    NSDictionary *resourceDict = [NSDictionary dictionaryWithContentsOfFile:resourcePath];
    [self.segmentedControl setTitle:[resourceDict objectForKey:@"COo-BO-Ryl.segmentTitles[0]"] forSegmentAtIndex:0];
    [self.segmentedControl setTitle:[resourceDict objectForKey:@"COo-BO-Ryl.segmentTitles[1]"] forSegmentAtIndex:1];

}

其中COo-BO-Ryl 是segmentedControl 的对象ID。

不是很漂亮,但可以。

【讨论】:

  • 在他的代码 OP 中使用了 xib 版本,而在我的代码中我使用了情节提要版本,但否则该解决方案应该可以工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-04
  • 2010-12-20
  • 2022-01-03
  • 2011-09-04
  • 2011-12-03
  • 2014-08-02
  • 1970-01-01
相关资源
最近更新 更多