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

标签 objective-c storyboard nslocalizedstring

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

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

我把这一行放在 viewDiLoad , viewWillAppear , viewDidAppear , viewDidDisappearviewWillDisappear

当 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/

相关文章:

iphone - PresentModalViewController : Where to release?

objective-c - if 语句中的赋值警告?

Storyboardsegue 显示从底部垂直而不是水平的过渡

storyboard - 验证时 Xcode 错误 - “Your binary is not optimized for iPhone 5”

iphone - genstrings 不适用于 NSLocalizedString 的宏

objective-c - 可以在 NSLocalizedString 中使用变量和/或参数吗?

ios - UIWebView 忽略 mailto

iphone - 选择 UITableViewCell 时 UILabel 背景被遮挡

ios - 切换子viewController使用分段控制

ios7 - 在 loc-args 中为 iOS 推送通知发送本地化的字符串键