8

私はこの問題にかなり苦労しており、自分でそれを理解できないようです。

これが状況です。独自の ViewController を備えたカスタムの Nib ベースのビューが必要です。次に、このビューをウィンドウに追加します。したがって、ウィンドウにはカスタム ビューが含まれている必要があります。

そこで、次のような非常に単純な例を作成します。

  1. Xcode 4 で、空白のドキュメント ベースの新しい Cocoa アプリケーションを作成します。
  2. から拡張する必要がある新しい Cocoa クラスを作成しますNSViewController(これにより、.h および .m ファイルと共に nib が作成されます。作成された .h、.m および .xib ファイルの名前はFaceViewControllerテスト目的のためのものであり、表示のみを行う必要がありますとりあえずテキスト。
  3. InterfaceBuilder でを開き、NSViewController.xib複数行のテキスト コンポーネントを追加して、既に xib ファイルにあるカスタム ビューに配置します。テキストをビュー全体に広げます。
  4. またMyDocument.xib、プレース ホルダーを追加しCustom Viewます。これは、カスタム FaceView に置き換える必要があります。

この開始点から、作成した View + ViewController を含めようとしたすべてがMyDocument.xib失敗し、テキストを表示する必要がある領域は空のままです (下にあるウィンドウの背景のように.

私のFaceViewが、私が配置したカスタムビューにロードされるように、私の質問は本当に私がしなければならないことですMyDocument.xib。ここに私には不明な点がいくつかあります:

  • カスタム ビューはから拡張されNSViewているので、これを FaceView に変更したかったのですが、ビューはクラスとして存在しませんが、xib の InterfaceBuilder で定義されています。これを 以外に設定する必要がありNSViewますか?
  • in コードを割り当て、初期化するFaceViewController必要がありますか、それとも 2 つの .xib のいずれかにドラッグするだけで十分ですか?
  • FaceView を配置するために InterfaceBuilder を使用できますか、それともプログラムで行う必要がありますか?

このようなカスタム ビューを作成するのは簡単なことだと思っていましたが、これまでのところまったく逆でした。

4

1 に答える 1

4

FaceViewController を作成するには、MyDocument.xib に追加するか、alloc、init を使用して作成します。

FaceView を配置するには、プログラムで行う必要があります。

[customView addSubview:[FaceViewController view]];

ビューを置き換えたい場合

[customView replaceSubview:oldView with:[FaceViewController view]];
于 2011-07-12T01:40:50.680 に答える