我創建Constants.h
和Constants.m
的建議在這裏:如何使用常量字符串變量在Interface Builder
現在我也想用在Interface Builder中Constants.h
定義了一些字符串,例如設置文本的標籤。
如何使用綁定來做到這一點?我想我應該以某種方式使用ObjectController(模式:類,類名稱:常量)?但是這個控制器的內容對象是什麼(因爲我沒有任何類型的常量變量)?也許在Constants.m
使用Singleton?有什麼建議麼?
我創建Constants.h
和Constants.m
的建議在這裏:如何使用常量字符串變量在Interface Builder
現在我也想用在Interface Builder中Constants.h
定義了一些字符串,例如設置文本的標籤。
如何使用綁定來做到這一點?我想我應該以某種方式使用ObjectController(模式:類,類名稱:常量)?但是這個控制器的內容對象是什麼(因爲我沒有任何類型的常量變量)?也許在Constants.m
使用Singleton?有什麼建議麼?
我不認爲你可以以任何方式綁定字符串。
我建議在viewDidLoad
的代碼中做。
請注意,字符串常量對於UI中的文本不太好。
編輯:
Xibs有自己的定位系統,但我不認爲這是非常好的。它基本上意味着爲每種語言創建一個新的xib。如果你只支持一種語言,只要把你的字符串放入xib中,問題就解決了。
注意:以下是我目前的項目的一個想法,我還沒有實現它,但我想它會讓我們輕鬆添加新的語言翻譯。
我對更好的xib本地化的想法是爲每個本地化組件(例如myButton1,myTextField1)定義IBOutlet,然後用本地化字符串(xml,properties,plist)編寫一個文件,其中每個字符串都由IBOutlet名稱如:
myXib1.myButton1.selected.title = This is a button. myXib1.myTextField1.placeholder = "This is text field placeholder"
然後,你必須寫這需要的廈門國際銀行的名字,發現當前的語言,並通過給定的廈門國際銀行的所有字符串屬性去的方法。它可以使用[NSObject performSelector:]
訪問IBOutlet中干將:
id localizableView = [self performSelector:NSSelectorFromString(@"myButton1")];
,你從viewDidLoad
調用這個方法(或創建UILocalizedController類會自動調用它和所有的控制器將是它的後代)。
另外請注意,有NSLocalizedString
類應該幫助你本地化。
謝謝你的回答。你認爲什麼是更好的方法?使用常量作爲存儲在.strings文件中的字符串的鍵?任何其他想法不以編程方式設置字符串? – Tobold 2011-12-19 10:09:13
答覆已更新。簡而言之,如果你只有一種語言,忘記常量並把所有東西都放到一個xib中。如果你正在考慮i18n,請閱讀擴展答案。 – Sulthan 2011-12-19 12:40:34