之后无法在 UIButton 上保持本地化



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

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

我把这条线放在viewDiLoadviewWillAppearviewDidAppearviewDidDisappearviewWillDisappear

当视图加载

时,出现文本的本地化版本,当我单击按钮时,文本将更改回情节提要中按钮上的原始文本,然后在加载以下视图之前再次返回到本地化语言(即使是标题也永远不会在这些阶段更改所有值!

我看到解决方案之一是拥有故事板的本地化版本,但我不想这样做,因为我将不得不维护所有本地化版本......还有其他解决方案吗?

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

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

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

最新更新