之后无法在UIButton上维护本地化

时间:2012-06-04 20:49:15

标签: objective-c storyboard nslocalizedstring

我正在使用NSLocalizedString函数来更改UIButton的语言

reset.titleLabel.text=NSLocalizedString(@"Reset", nil);

我将此行放在viewDiLoadviewWillAppearviewDidAppearviewDidDisappearviewWillDisappear

当View加载时,文本的本地化版本出现,当我单击按钮时,文本将更改回Storyboard中按钮上的原始文本,然后在加载之前再次返回到本地化语言以下视图(即使标题在这些阶段都不会改变值!)

我看到其中一个解决方案是拥有故事板的本地化版本,但我不想这样做,因为我必须维护所有本地化版本......任何其他解决方案?

1 个答案:

答案 0 :(得分:10)

我建议使用-setTitle:forState:来更改标题。通过手动更改titleLabel.text,您应该期望偶尔重置文本。大多数文档示例只显示操作字体大小等,而不是内容,这是因为titleLabel设置为currentTitle因为按钮有多种状态,iOS有一种设置这些状态的方法存储它们的位置,并确保适当更新任何图像缓存。

[reset setTitle: NSLocalizedString( @"Reset", nil) forState: UIControlStateNormal];

只要没有明确设置其他状态,就会将其用于所有状态。如果要更改不同状态的标题,请使用其他状态内容之一。