3

.wavファイルのビューアとして機能するシンプルなドキュメントベースのCocoaアプリを使用して、周波数分析を少し行います。開いたファイルから収集したデータをCSVにエクスポートして、他のプログラムでさらに分析できるようにしたいと思います。

Cocoaのドキュメントベースのアプリケーションフレームワークを使用すると、オーバーライドできます

- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError

デフォルトの[保存/名前を付けて保存...]ワークフローを実装しますが、開いたファイルを書き込みたくありません。

明らかなことは、ドキュメントにエクスポートワークフローを実装し、ファイル保存シートを表示し、NSDataを作成して、ファイルパスに書き込むことですが、MainMenuペン先のアウトレットをに接続する明確な方法はありません。ドキュメントコントローラでのアクション。

では、ドキュメントベースのCocoaアプリにそのような機能を実装するために受け入れられている方法は何でしょうか?

4

1 に答える 1

3

MainMenu.nibの「FirstResponder」オブジェクトに「export:」という新しいアクションを作成し、それに接続できます。次に、ドキュメントサブクラスにexport:メソッドを実装します。これにより、メソッドが呼び出されます。

これが機能する理由は、マジックファーストレスポンダーオブジェクトに送信されたメッセージがレスポンダーチェーン全体を通過し、それらを処理するオブジェクトを探すためです。そのレスポンダーチェーンの項目の1つはドキュメントであるため、現在選択されているコントロール、ビュー、スーパービュー、ウィンドウなどがすべてメッセージを処理しない場合、ドキュメントはチャンスを得ます。(ドキュメントコントローラーもそのチェーン上にあるため、使用することもできます。)

Appleのレスポンダーチェーンドキュメントを見てください-図1.10はこの特定のパスをカバーしています。

于 2009-04-20T22:43:18.660 に答える