随時、更新予定
メニューの追加とハンドリング
メニューの追加とハンドラの実装までは以下のような手順で行う。
- MainMenu.xib を開き、Menu Item または Submenu Item を追加。
- First Responder を選択し、Attributes inspector で応答するアクションを定義。
- メニューとアクションを接続。(メニューを Control+ドラッグし、First Responder でドロップ)
- 応答したい場所でアクションメソッドを実装。
Cocoa は nil ターゲットアクション という仕組みにより、 レスポンダ・チェーン を辿ってアクションに応答できるオブジェクトを探し、メソッドを呼び出してくれる。
ドキュメントベースのアプリケーションは通常、メニューを定義する MainMenu.xib とドキュメントウィンドウを定義する Document.xib が分離している。
ドキュメントクラスにメニューに対する応答を実装したい場合は、この仕組みを利用してメニューハンドラを実装する。
MainMenu.xib にメニュー UI とアクションを定義
Document.m にアクションハンドラを実装
Document.m
- (IBAction)insertRectShape:(id)sender
{
...
}
参考文献
MAC OS X COCOA プログラミング(原著第 4 版) P.361 "nil ターゲットアクション"