1

iPad アプリ (XCode 4.6、iOS 6.2、ストーリーボード、および ARC) があります。UISegmentControl をローカライズしようとしています。MainStoryboard.strings ファイルに既に翻訳があり、コントローラーの viewDidLoad に次のコードがあります。

    //  set titles of UISegmentedControls
NSString *resourcePath  =[[NSBundle mainBundle] pathForResource:@"MainStoryboard" ofType:@"strings"];
NSDictionary *resourceDict = [NSDictionary dictionaryWithContentsOfFile:resourcePath];

[self.oDeleteOldAppts setTitle:[resourceDict objectForKey:@"jcy-vN-Nq9.segmentTitles[0]"] forSegmentAtIndex:0];
[self.oDeleteOldAppts setTitle:[resourceDict objectForKey:@"jcy-vN-Nq9.segmentTitles[1]"] forSegmentAtIndex:1];
[self.oDeleteOldAppts setTitle:[resourceDict objectForKey:@"jcy-vN-Nq9.segmentTitles[2]"] forSegmentAtIndex:2];

問題は、resourcePathresourceDictの両方が nil であることです。enであれ他の言語であれ、現在の言語でそれらを取得するにはどうすればよいですか?

4

2 に答える 2

0

そんなことはしないでください。ストーリーボードに付随する .strings ファイルを適切な言語に編集して、ストーリーボードをローカライズします。iOS がビューを表示すると、適切なローカライズが自動的に取得されて表示されます。

編集: 文字列ファイルから何かを取得する場合は、次のようにします。

[[NSBundle mainBundle] localizedStringForKey:@"someKeyHere" value:nil table:@"MainStoryboard"];
于 2013-06-15T01:54:08.010 に答える
0

UISegmentedControls はタイトルをローカライズできないため、GitHub から取得した RadioButtons に置き換えました。ラベルをローカライズし、ラジオ ボタンをその横に移動すると、チャンピオンのように機能します。

UPDATE 1つの問題 - 設定を実行から実行まで保持する方法がないように見えるため、これは機能しません。現在、独自のカスタム ボタンを作成し、UISegmentedControl をエミュレートしています。問題なく動作...

于 2013-06-15T14:51:57.817 に答える