3

mainmenu.xibにを追加し、オブジェクトの名前をappDelegateの名前に設定し、mainmenu.xibデリゲートをこのオブジェクトに設定した後、を使用してアプリ全体のデリゲートインスタンスにアクセスできます。[NSApp delegate]NSObject

ここで、私がやりたいのは、オブジェクトのドキュメント、つまりNSDocumentオブジェクトが「属する」アクティブにアクセスすることです。これは、ドキュメント全体のデリゲートインスタンスになると思います。時々[self document]機能しますが、常にではありません。一般的な方法はありますか?

4

3 に答える 3

5

参照を明示的に渡す必要はありません。NSViewController次の方法でドキュメントにアクセスできます。

id document = self.view.window.windowController.document;
于 2012-08-12T13:29:58.963 に答える
1

どう[[NSDocumentController sharedDocumentController] currentDocument]ですか?

それでも注意してください。nilを返すNSDocumentControllercurrentDocumentをお読みください

于 2013-04-01T10:40:50.083 に答える
0

ドキュメントの一部であるサブウィンドウの場合、非常に単純なサブクラスを作成しNSViewController、そこに必要な情報を格納するのは非常に簡単であることがわかります。これらのViewControllerは、メインのDocument実装内に設定されているため、NSDocumentオブジェクトのアドレスを簡単に渡すことができます。実際のサブビューは、この「管理コントローラー」のサブクラスであるビューコントローラーによって制御できます。

このソリューションはすべてのオブジェクトに対して機能するわけではありませんが、最大のハードルを取り、私の問題を解決します...

于 2012-08-12T12:58:12.250 に答える