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