ページ

2008年8月2日土曜日

SimpleCap (31) アプリケーションキャプチャ(2)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

メニューで "Application" を選択した時にその時点でのアプリケーション一覧をメニューに表示する。


これを実現するには "Application" が選択された時のイベントを捉える必要がある。これは NSMenuの Delegateを使えば簡単にできる。

IBOutlet NSMenu *_app_menu


として、IntefaceBuilderで "Application"の NSMenuへ接続し、コントローラーの中で NSMenu#setDelegate を呼出す。

[_app_menu setDelegate:self]


すると下記の Delegate 先に下記のメッセージが送信される。
menu:updateItem:atIndex:shouldCancel:
menu:willHighlightItem:
menuDidClose:
menuHasKeyEquivalent:forEvent:target:action:
menuNeedsUpdate:
menuWillOpen:
numberOfItemsInMenu:


今回は #menuWillOpen: を使う。こんな感じ。
- (void)menuWillOpen:(NSMenu *)menu
{
 // メニュー更新コード(この時点で起動しているアプリの一覧で NSMenuItem作成)
}