ページ

2008年10月23日木曜日

範囲選択履歴(その4)ポップアップメニュー

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

下三角のアイコンをクリックした時にポップアップメニューを表示したい。ADCのマニュアルを調べていたらずばり目的のコードが掲載されていた。

Application Menu and Pop-up List Programming Topics for Cocoa
この中の "Listing 3 Displaying a contextual menu upon receiving a left-mouse event" が参考になる。

これを参考にしてまずは動作確認目的で、アイコンが押されたらサンプルのメニューを表示するだけの処理を加えてみる。
下三角のアイコンを押したら、次のメソッドを呼出す。

-(void)displaySelectionHistoryMenuWithEvent:(NSEvent*)event
{
NSMenu *menu = [[[NSMenu alloc] initWithTitle:@"HELLO"] autorelease];
[menu insertItemWithTitle:@"100x100" action:@selector(selectHistory:) keyEquivalent:@"" atIndex:0];
[menu insertItemWithTitle:@"200x200" action:@selector(selectHistory:) keyEquivalent:@"" atIndex:1];
[menu insertItemWithTitle:@"300x300" action:@selector(selectHistory:) keyEquivalent:@"" atIndex:2];

[NSMenu popUpContextMenu:menu withEvent:event forView:_button_bar2];
}


NSMenu のインスタンスを作成し、ここへサンプルのメニュー項目3つを追加する。そして最後に NSMenu#popUpContextMenu:withEvent:forView: を呼出すと、ポップアップメニューが現れる。_button_bar2 は下三角アイコンを表示しているカスタムビュー。

メニュー出た。