取り扱いメッセージの返ビューのコントローラー
-
19-09-2019 - |
質問
しば見落とさないよう、シンプルですが見えないことに気づいたのです。第一に、設定:
DATreeView
, では、サブクラスNSView
DATreeViewController
, では、サブクラスNSViewController
MainMenu.xib
してのインスタンスDATreeViewController
, 構成された、負荷がかりにDATreeView.xib
MainMenu.xib
ものインスタンスDendreaAppDelegate
, は、DATreeViewController
アウトレット(有線までMainMenu.xib
'sDATreeViewController
インスタンス.Do Something!
, メニュー項目を有線までお送りdoSomething:
メッセージの最初の対応者であ- ないその素晴らしさを最初に紹介
DATreeViewController
は新しいコンセプトとして"というdoSomething:
.
だいたいの Do Something!
メニュー項目でトリガーの doSomething:
作 DATreeViewController
, しましょうをふんだ"という大きな目標を掲げ行動接続ます。私は停ことをお願いすることが私のデザイン完全に間違いだったのか?どのようにしていないカ/evil/が恥ずかしく、目の神様?
ありませんか?●ます。現在の見所が取得できなくても、メニュー項目にアクティブになります。になっているこSnow Leopard場合、その他。
達成のために良い統合 NSView
や NSViewController
, など管理に対応チェーンの今後 マット-ヴィメタルバンドの例, り、実質的な変更:でなペン先の読み込みプロセスは NSView
いを受ける setViewController:
メッセージで送ってもいいというメッセージを自分自身 DATreeViewController
's loadView
メッセージ。うえしましたが、走行には、下記コード applicationDidFinishLaunching:
NSView *view = self.treeViewController.view;
[self.window.contentView addSubview:view];
に対応チェーンセットとして今後も成長が見込まれるのは:
NSWindow < NSView < DATreeViewController < DATreeView
ったので期待されて DATreeViewController
に対応チェーン、に対応して doSomething:
, ということを実装していないバリデーション、すべての思いはインターフェースビルダーワイヤーの Do Something!
メニュー項目への対応プロキシで、 doSomething:
として行動し、メニュー項目も活動します。
なぜですか?ご貴重な援!
解決
あなたのビューが受け入れ、成功した最初の応答者となっていますか?
他のヒント
DATreeViewController IBでDATreeViewのViewControllerをコンセントに配線されていますか?
あなたはsetViewControllerを通じて追跡さがあります:とsetNextResponder:?nextResponderが正しく設定されていることを確認するために、
レスポンダチェーンにのみ、私はあなたがNSResponder
を見て、mouseDown
場合にメッセージを送信することによって、バブルアップ他の方法にmouseExited
するカテゴリを追加することによって、卑劣な何かを行うことができると信じて、このようなNSResponder
nextResponder
などnextResponder
スーパークラス内のメッセージなどのために働きます存在しています。
これは、この技術の例のように見える:ます。https:// github.com/MrNoodle/NoodleKit/blob/master/NSResponder-NoodleModalExtensions.mする