2011-07-25 2 views
0

初心者OS Xの開発者はここにいますが、iOSでかなり経験があります。現在のウィンドウにNSMenuコマンドを送信しますか?

トップレベルのNSMenuがアプリケーションとやりとりする方法について、何か基本的なものがありません。 File-> Saveコマンドを現在のウィンドウに移動します。これまでのところ、私はアプリケーションデリゲートでNSMenuアクションを受け取ることしかできませんでした。アクティブなウィンドウを追跡して、アプリケーションデリゲートからメソッドを呼び出すはずですか?

+0

ウィンドウでメソッドを実行しますか? – lbrndnr

答えて

2

まず、メニューを正しく処理するために知っておくべきことがたくさんあるため、Macのメニュー処理ではread upが必要です。

メニュー項目がnilの目標を持っている場合は、メニュー操作システムは、現在アクティブなコントロールやビュー(ファーストレスポンダ)から開始し、レスポンダチェーンを歩き、そのようSaveメニュー項目として、あなたの特定の質問に答えるためにそのメニュー項目のアクションセレクタを実装するオブジェクトを探します。

レスポンダチェーンの仕組みがわからない場合は、read about that tooとする必要があります。なぜなら、Macアプリケーションの仕組みを理解する上で基本的なことなのでです。

ウィンドウがメインウィンドウであるときにウィンドウコントローラが‑save:アクションを処理するようにするには、ウィンドウコントローラに‑save:アクションを実装するだけです。アプリケーションが委譲される前にウィンドウコントローラがレスポンダチェーン内にあるため、メソッドの実装が使用されます。

関連する問題