我按照此处的建议创建了Constants.h
和Constants.m
:
现在我还想在Interface Builder中使用Constants.h
中定义的一些字符串来设置标签的文本。
如何使用绑定执行此操作?我想我应该以某种方式使用ObjectController(模式:类,类名:常量)?但是这个控制器的内容对象是什么(因为我没有任何类型的常量变量)?也许在Constants.m
中使用单身人士?有什么建议吗?
答案 0 :(得分:2)
我认为你不能以任何方式绑定字符串。
我建议在viewDidLoad
中的代码中执行此操作。
请注意,字符串常量对于UI中的文本来说并不是那么好。
编辑:
Xibs有自己的本地化系统,但我认为它不是很好。它基本上意味着为每种语言创建一个新的xib。如果您只支持一种语言,只需将字符串放入xib即可解决问题。
注意:以下是我当前项目的想法,我还没有实现它,但我想它可以让我们轻松添加新的语言翻译。
我对更好的xib本地化的想法是为每个可本地化的组件定义IBOutlet(例如myButton1,myTextField1),然后编写一个带有本地化字符串(xml,属性,plist等)的文件,其中每个字符串都由IBOutlet名称键入,例如:
myXib1.myButton1.selected.title = This is a button. myXib1.myTextField1.placeholder = "This is text field placeholder"
然后,您必须编写一个方法,该方法获取xib名称,查找当前语言并查看给定xib的所有字符串属性。它可以使用[NSObject performSelector:]
访问IBOutlet getters:
id localizableView = [self performSelector:NSSelectorFromString(@"myButton1")];
然后从viewDidLoad
调用此方法(或者创建一个自动调用它的UILocalizedController类,所有控制器都是它的后代)。
另请注意,NSLocalizedString
课程可以帮助您进行本地化。