アプリケーションメニューの私のCocoaアプリケーションには、最初のレスポンダにdelete:
メッセージを送信するメニュー項目「削除」があります。今、私はキーボードのフォーカスをNSOutlineView
にしています。これはこの場合の最初のレスポンダーです。 NSOutlineView
をサブクラス化するのに間に合わず、delete:
メッセージがそれに渡されるように処理する方法はありますか? NSOutlineViewDelegate
もNSOutlineViewDataSource
も、これらのアクションを処理するための興味深いものを定義していないようです。NSResponderデリゲートのようなものはありますか?
答えて
最初のレスポンダは、最初のレスポンダです。興味のないものはの次のレスポンダに転送します。これは、メッセージがアプリケーションオブジェクトに到達するまで順番に転送されます。
このメッセージを処理するために必要なのはレスポンダチェーン内です。ウィンドウコントローラは良い方法です。ウィンドウの次のレスポンダになります。
アーキテクチャの観点からは、ウィンドウコントローラがテーブル/アウトラインビューのローカルな "コピー"、 "貼り付け"、 "削除"イベントを処理するのが面倒ではないでしょうか?これらのメソッドは、ビューがバインドする配列/ツリーコントローラまたはビューのデリゲートで処理するのが最適ですが、NSArrayControllerとNSTreeControllerはNSRespondersではなく、レスポンダチェーン内にはありません。 – Tony
カスタムNSViewControllerオブジェクトを使用して、個々のビューをそれぞれ管理し、レスポンダチェーンにビューコントローラを挿入することができます。ビューコントローラは、コピーとペーストなどを処理できます。 –
@トニー:ウィンドウコントローラがデータを所有するオブジェクト(ドキュメントなど)を所有している、または知っている場合はありません。ウィンドウコントローラは、ビューとウィンドウとモデルコントローラの中間に存在します。ビューがカット、コピー、貼り付け、および削除を(バインディングまたはデータソースメッセージを使用して)処理した場合、ビューを追加するサブクラスを作成しない限り、ビューは最適ではありません。 –
- 1. Windows OSのMonitのようなものはありますか?
- 2. iOS - パスのCGContextSetLineDashのようなものはありますか?
- 3. ASP.NET用のwebrickのようなものはありますか?
- 4. C#のバンドルのようなものはありますか?
- 5. ActiveRecord(Rails)のcreate_viewのようなものはありますか?
- 6. OCamlのインクリメンタルビルドのようなものはありますか?
- 7. デフォルトのライセンスのようなものはありますか?
- 8. ソファのバスケットのようなものはありますか?
- 9. 短絡乗算のようなものはありますか?
- 10. そのようなものはありますか?
- 11. JSX 'partials'のようなものはありますか?
- 12. IRB for Cのようなものはありますか?
- 13. JavaにはCHESSのようなものがありますか?
- 14. アンドロイドにNSDictionaryのようなものはありますか?
- 15. Luaにポインタのようなものはありますか?
- 16. 配列/オブジェクトハイブリッドのようなものはありますか?
- 17. AndroidにはlocalStorageのようなものがありますか?
- 18. WMI for Linuxのようなものはありますか?
- 19. PHPでChronicのようなものはありますか?
- 20. "Ruby on Rails gem"のようなものはありますか?
- 21. Rubyは。=、+ =のようなものがありますか?
- 22. Docusign Senderグループのようなものはありますか?
- 23. プリズムインフラストラクチャプロジェクトにはどのようなものがありますか?
- 24. JavaにRhinoMocksのようなものはありますか?
- 25. @JsonIgnoreOtherPropertiesのようなものはありますか?
- 26. redisにget_nextのようなものはありますか?
- 27. RightMark for Linuxのようなものはありますか?
- 28. 「Unicode照合」のようなものはありますか?
- 29. Isabelleにsubst_tacルールのようなものはありますか?
- 30. VB.NETには "global ::"のようなものがありますか?
サブクラス化に対するあなたの反対は何ですか?シンプルで、あなたが望むものを実現します。 –
これは確かに結果を達成しますが、それらのグルー要素を処理することは、ビューの代わりにコントローラの役割と思われます。さらに、Cocoaはデリゲートパターンを大いに支持しているので、おそらく、これらのタスクを処理する組み込みの代理人がいると思います。 – Tony