我正在使用NSLocalizedString函数来更改UIButton的语言
reset.titleLabel.text=NSLocalizedString(@"Reset", nil);
我将此行放在viewDiLoad
,viewWillAppear
,viewDidAppear
,viewDidDisappear
和viewWillDisappear
当View加载时,文本的本地化版本出现,当我单击按钮时,文本将更改回Storyboard中按钮上的原始文本,然后在加载之前再次返回到本地化语言以下视图(即使标题在这些阶段都不会改变值!)
我看到其中一个解决方案是拥有故事板的本地化版本,但我不想这样做,因为我必须维护所有本地化版本......任何其他解决方案?
答案 0 :(得分:10)
我建议使用-setTitle:forState:
来更改标题。通过手动更改titleLabel.text
,您应该期望偶尔重置文本。大多数文档示例只显示操作字体大小等,而不是内容,这是因为titleLabel
设置为currentTitle
因为按钮有多种状态,iOS有一种设置这些状态的方法存储它们的位置,并确保适当更新任何图像缓存。
[reset setTitle: NSLocalizedString( @"Reset", nil) forState: UIControlStateNormal];
只要没有明确设置其他状态,就会将其用于所有状态。如果要更改不同状态的标题,请使用其他状态内容之一。