私は最初のMacドキュメントベースのアプリケーションで作業しています。そのようなNSDocumentController nurを返すcurrentDocument
- (BOOL)readFromURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError;
- (BOOL)writeToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError;
- (void)makeWindowControllers;
メインウィンドウコントローラとしてIがNSDocument
をサブクラスた
、再実装方法は、2つのNSViewControllerサブクラスが含まNSWindowsController
のサブクラスです。
私が直面している問題は、これらのビューコントローラから現在のドキュメントにアクセスする必要があることです。私がしていることは、呼び出しです
MyDocument *myDocument = [[NSDocumentController sharedController] currentDocument];
最初は、アプリケーションの開始直後に新しい文書が作成されます。次に、メインウィンドウとそのビューコントローラが作成されますが、上記のメソッドはとなります。が返されます。ここで(のNSLogを使用して)、ログ私が手だ:、その後
Just created this new document: <MyDocument: 0x10040ff10>
I'm in a view controller and current document is (null)
、新しい文書を作成し、非nilのポインタでこのメソッドを呼び出すには、それは右の文書を指していませんが、最初の1へ:
Just created this new document: <MyDocument: 0x100437e10>
I'm in a view controller and current document is <MyDocument: 0x10040ff10>
お知らせその2番目の文書を作成した後、最初の文書にはない第二1へcurrentDocument
ポイント。
ここで私が迷っていることや間違っていることは何ですか? NSDocumentController
の場合、currentDocument
はいつですか? NSDocumentController
currentDocument
上のアップルのドキュメントから
ありがとうございましたが、私はすでにそれを試みましたが、結果としてはまだゼロになっています。私はまた、 "アクティブではない"という意味ではAppleには意味がないと思っていましたが、私の場合は、アプリケーションの起動直後に起こります。ドラッグ・アンド・ドロップはありません。特別なものはありません。 – msoler