弹出菜单,要求更新每个按键上的所有菜单

时间:2010-07-20 19:59:20

标签: cocoa macos popup appkit nsmenu

我正在以编程方式创建一个弹出菜单,并使用委托方法menuNeedsUpdate:(NSMenu *)菜单进行更新,然后使用popUpMenuPositioningItem显示它:nil atLocation:mouseLoc inView:nil方法。

就鼠标控制而言,它工作得很好。但是,当使用键盘(字母或箭头键)时,我注意到它调用menuNeedsUpdate:对于所有内容,根菜单和子菜单。这是非常低效的,并且通过键盘缓慢使用菜单。

为什么会这样?有什么方法可以绕过它或阻止它吗?

1 个答案:

答案 0 :(得分:1)

我会尝试在您的委托上实施menuHasKeyEquivalent:forEvent:target:action:(并且如果您在菜单中没有任何内容具有等效的密钥,则始终返回NO。)