首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMenu不调用委托menuHasKeyEquivalent:

NSMenu不调用委托menuHasKeyEquivalent:
EN

Stack Overflow用户
提问于 2015-08-13 15:07:23
回答 1查看 341关注 0票数 0

我设置了一个菜单并分配了一个委托

代码语言:javascript
复制
- (void)constructAndDisplayMenu {

    NSMenu * menu = [[NSMenu alloc] initWithTitle:@""];

    {
        NSMenuItem * item = [[NSMenuItem alloc] initWithTitle:@"1" action:@selector(menuItemPressed:) keyEquivalent:@""];
        [menu addItem:item];
    }
    {
        NSMenuItem * item = [[NSMenuItem alloc] initWithTitle:@"2" action:@selector(menuItemPressed:) keyEquivalent:@""];
        [menu addItem:item];
    }
    {
        NSMenuItem * item = [[NSMenuItem alloc] initWithTitle:@"3" action:@selector(menuItemPressed:) keyEquivalent:@""];
        [menu addItem:item];
    }

    [menu popUpMenuPositioningItem:nil atLocation:NSMakePoint(2,2) inView:self];

    self.menu = menu;
    menu.delegate = self;

}

菜单会显示出来,我会得到像menuDidClose:这样的委托回调,但是我没有接到menuHasKeyEquivalent:forEvent:target:action:的电话

代码语言:javascript
复制
- (BOOL)menuHasKeyEquivalent:(NSMenu*)menu forEvent:(NSEvent*)event target:(id*)target action:(SEL*)action {

    NSLog(@"%@", event);

    return NO;
}

键入键盘时,NSMenu会自动更改突出显示的项,但不会对委托执行回调。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-14 20:16:55

menuHasKeyEquivalent:forEvent:target:action:方法适用于应用程序的菜单栏,而不是上下文菜单。即使应用程序菜单栏中的菜单在使用快捷键时打开,也不会被调用。

它的行为并没有被清楚地记录下来,但是它在WWDC 2010届会145中被简短的提到过。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31992042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档