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