2

私は 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 をロードできませんでした。

私が試みたが役に立たなかった提案された解決策

  1. プロジェクトのクリーニングは役に立ちません
  2. ビルド構成を確認しています - はい、バンドル リソースは問題ないようです
  3. はい、サブビューのローカライズを削除して元の XIB を再度追加すると、問題は解決します (もちろん、ビューはローカライズされていません)。

ヘルプ

4

3 に答える 3

7

なぜこのようなことが起こるのか、私には答えがありません。しかし、私は同じ問題を抱えていたので、xCode を閉じて再度開くことで修正しました。信じてください。

于 2013-04-16T20:11:28.393 に答える
1

以下を試してください:

  • あなたのプロジェクトを選択してください
  • 「ビルドフェーズ」を選択
  • 「バンドルリソースのコピー」に新しいxibを追加します

ここに画像の説明を入力

于 2013-03-25T15:41:16.677 に答える
0

私はちょうどこの同じ問題を抱えていて、次のようにして解決することができました:

1) プロジェクトナビゲーターで XIB を選択します

2) File Inspector で、Localization の下にあるすべての項目のチェックを外します (プロンプトが表示されます - [delete files from disk] がオフになっていることを確認し、[Remove] を押します)。

3) XIB を手動でプロジェクトに追加し直します。

于 2013-03-28T19:47:42.100 に答える