2014年5月23日金曜日

ポップアップメニュー

ボタンを押したらポップアップメニューが出るようにしたい。どうするか。
NSButton のサブクラスを作成して、NSView の

+ (NSMenu *)defaultMenu
- (NSMenu *)menuForEvent:(NSEvent *)theEvent

をオーバーライドしてもいいけど、サブクラスを作らない方法。

-----------------------------------------------------------
- (IBAction)buttonAction:(id)sender {
   
    NSMenu *menu = [[[NSMenu alloc] initWithTitle:@"MenueTitle"] autorelease];

    [menu addItemWithTitle:@"Test"
                    action:@selector(selectedItem:)
             keyEquivalent:@""];
   
    [NSMenu popUpContextMenu:menu
                   withEvent:[NSApp currentEvent]
                     forView:[[sender cell] controlView]];
   
    return;
}

- (void)selectedItem:(id)sender {
    NSLog(@"Selected:%@",sender);
}
-----------------------------------------------------------


0 件のコメント:

コメントを投稿