私は Mac OS X の開発に取り掛かり始めていますが、過去 3 時間解決策を見つけることができなかった問題があります (私は長い間グーグルで調べてきました)。
アプリケーションのテスト:私は、ウィンドウを表示する
を持つアプリケーションを持っています。メイン ウィンドウ内に表示するビューを含むMainMenu.xib
別の XIB とサブクラスを作成しました。NSViewController
次のコードを使用してビューを読み込み、メイン ウィンドウに挿入します。
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
self.compartmentViewController = [[SelectCompartmentViewController alloc] initWithNibName:@"SelectCompartmentViewController" bundle:nil];
[self.compartmentViewController.view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
[self.compartmentViewController.view setFrame:[self.contentArea bounds]];
}
compartmentViewController
はプロパティでありself.contentArea
、メイン ウィンドウのカスタム ビューです - プレースホルダーのようなものです。
これはこれまでのところうまくいきます。
問題
次に、ローカリゼーション機能を調べてみることにしました。いくつかの文字列と両方の XIB をローカライズしました。最初は、ローカライズされた値が表示されないことに少し戸惑いました。それは、プロジェクトをクリーンアップする必要があることが判明するまででした。それ以来、実行時に次のエラーが発生しています。
2013-03-19 22:48:59.763 語彙ボックス [10160:303] バンドル パスの SelectCompartmentViewController: (null)
2013-03-19 22:48:59.764 語彙ボックス [10160:303] -[ NSViewController loadView] は「SelectCompartmentViewController」nib をロードできませんでした。
私が試みたが役に立たなかった提案された解決策
- プロジェクトのクリーニングは役に立ちません
- ビルド構成を確認しています - はい、バンドル リソースは問題ないようです
- はい、サブビューのローカライズを削除して元の XIB を再度追加すると、問題は解決します (もちろん、ビューはローカライズされていません)。
ヘルプ