0

特定のドキュメントのカスタム動作を取得するために、NSApplicationDelegate の application:openFiles を実装しています。ただし、ドキュメントによっては、デフォルトの動作 (ドキュメントを開いて表示するだけ) が必要です。したがって、ドキュメントを並べ替えた後、各ドキュメントに対して次のように呼び出します。

[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:[NSURL URLWithString:camDoc] display:YES completionHandler:^(NSDocument *document, BOOL alreadyOpen, NSError *error){
    NSLog(@"%@",document);
}];

コンソールに次のエラーが記録されます。

*** setObjectForKey: key cannot be nil

完了ハンドラが呼び出されることはありません。完全な openFiles メソッドをコメントアウトすると、ドキュメントが正常に開かれるため、NSDocument クラスが正しく実装されているように見えます。

デリゲート メソッドは URL ではなく NSString を受け取るため、サンドボックスを一時的にオフにしてみました。それは助けにはなりませんでした。

ここで何がうまくいかないのですか?

おまけの質問: セキュリティ スコープの URL をアプリケーションで (Finder から) 開くにはどうすればよいですか?

4

1 に答える 1