2

基本的にグラフィカルな編集プログラムであるドキュメントベースの Cocoa アプリを作成しています。ユーザーが非モーダル ウィンドウ (インスペクター ウィンドウなど) を表示/非表示にできるようにしたい。これらのウィンドウはメニュー項目から表示/非表示になるため、次のようなアクションを実装するのに「最適な」場所は- (IBAction)toggleInspector:(id)senderどこですか?

Sketch のサンプル コードでは、これらがアプリ デリゲートに実装されており、ウィンドウ コントローラーのインスタンスもそこに保持されていることがわかりましたが、それは最も「優雅な」場所というよりも、配置するのに便利な場所のように感じます。さらに、このインスペクターはドキュメントが開いているときにのみ関連するためNSWindowController、アプリよりもドキュメントのメインに関連付ける必要があるように感じます。

4

1 に答える 1

2

さらに、このインスペクターはドキュメントが開いている場合にのみ関連するため、アプリよりもドキュメントのメインの NSWindowController に関連付ける必要があるように感じます。

いいえ、Inspector はすべてのドキュメントで共有されているためです。ドキュメントごとに 1 つのインスペクターはありません。

1 つのプロセスで複数のドキュメントを開くことができることに注意してください。これらは、Windows のようにドキュメントごとに 1 つの複数のプロセスではなく、1 つのプロセス内の複数のドキュメントです。プロセスごとに 1 つのインスペクターがあり、すべてのドキュメントで共有され、その時点で最前面にあるドキュメントに適用されます。

MainMenu nib でインスタンス化された独自のコントローラーを Inspector に与えます。

于 2010-03-20T21:26:02.647 に答える