macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

menuForEvent:

イベントに応じたポップアップメニューを返します
-(NSMenu *)menuForEvent:(NSEvent *)theEvent:

解説

イベントに応じたポップアップメニューを返します。
サブクラスでオーバーライドします。

返り値

( NSMenu * )

メニュー

引数

( NSEvent * )theEvent

イベント

フレームワーク

ApplicationKit

クラス

NSView

Instance Methods

使用可能

10.0

参照

+ defaultMenu
- menu (NSResponder)

例文

#import "MyView.h"

@implementation MyView
- (void)beginPageInRect:(NSRect)aRect atPlacement:(NSPoint)location
{
NSLog(@"beginPageInRect");

[super beginPageInRect:aRect atPlacement:location];
}

-(void)mouseDown:(NSEvent *)theEvent
{
NSMenu *menu = [self menuForEvent:theEvent];
NSLog(@"mousedown");
NSLog([menu description]);

}

-(NSMenu *)menuForEvent:(NSEvent *)theEvent
{
NSMenuItem	*menuItem = [[[NSMenuItem alloc] init] autorelease];
        NSMenu *menu = [[NSMenu allocWithZone:[NSMenu menuZone]] 
            initWithTitle:NSLocalizedString(@"menu_open",@"")];
        [menuItem setTitle:NSLocalizedString(@"menu_open",@"")];

        [menu addItemWithTitle: NSLocalizedString(@"menuItem_1",@"")
            action: @selector(mItem1) keyEquivalent: @"A"];
        [menu addItemWithTitle: NSLocalizedString(@"menuItem_2",@"")
            action: @selector( mItem2: ) keyEquivalent: @"B"];
        [menu addItem: [NSMenuItem separatorItem]];
        [menu addItemWithTitle: NSLocalizedString(@"menuItem_3",@"")
            action: @selector( mItem3: ) keyEquivalent: @"E"];
        [menuItem setSubmenu: menu];
        
        [menu setAutoenablesItems:NO];
        [menuItem setEnabled:YES];
        
        [[NSApp mainMenu] insertItem: menuItem atIndex: 2];
        [menuItem setTarget:self];
return menu;
}
@end