4

Cocoa ドキュメント ベースのアプリケーションで newDocument: をオーバーライドしようとしています。メニュー バーで [新規] をクリックすると、ファーストレスポンダーがアクションを受け取る標準​​的なプロジェクトがあります。私の目標は、メニュー バーで [新規] をクリックしたときに、新しいドキュメント構成を含むウィンドウが表示されるようにすることです (Photoshop のようなものです)。Apple Docs を読んだ後、NSDocumentController サブクラスで newDocument: をオーバーライドする必要があることがわかりました。次に、newDocument: が呼び出されたときに構成ウィンドウが表示されるように設定します。

私の NSDocumentContoller サブクラスを使用する最良の方法は何ですか? Interface Builder でオブジェクトをドラッグして、そのメソッドを MainMenu バーに接続することはできましたが、それが適切な方法かどうかはわかりません。MenuBar の新しいファーストレスポンダーとして NSDocumentController を使用するにはどうすればよいですか?

4

1 に答える 1

6

NSDocumentController はシングルトンであり、この点に同意するには、常にメソッドを使用してサブクラスにアクセスする必要があります。[NSDocumentController sharedDocumentController]

  • maimenu.xib で NSObject をドラッグし、カスタム クラスを NSDocumentController サブクラスにポイントします。これは、Cocoa エコシステムが他のクラスの前にシングルトンを作成するために必要です。

次に、オーバーライドして- (IBAction)newDocument:(id)sender、好きなことを行うことができます。

少し古いですが、 NSDocumentController をサブクラス化する必要があるときにSeashoreのソース コードが非常に役立つことがわかりました。

以下の画像は、XCode の要素を示しています ここに画像の説明を入力

于 2013-09-07T06:01:12.113 に答える