1
我创建了一个弹出菜单以编程方式并使用委托方法menuNeedsUpdate更新它:(NSMenu *)菜单,然后使用popUpMenuPositioningItem显示它:nil atLocation:mouseLoc inView :无方法。弹出菜单呼吁更新每个按键上的所有菜单
就鼠标控制而言,它工作正常。但是,当使用键盘(字母或箭头键)时,我注意到它调用menuNeedsUpdate:对于所有内容,根菜单和子菜单。这是非常低效的,并使得通过键盘缓慢使用菜单。
这是怎么发生的?任何方式来规避或阻止它?
辉煌。这解决了它。有趣的是,为了调试目的,我在menuHasKeyEquivalent:forEvent:target:action:方法中放置了一个NSLog,以查看它是否被调用。那么,它会被称为我想,因为它现在工作正常(不会填充每个按键上的整个菜单),但NSLog不出于某种原因。 – the979kid 2010-07-21 06:37:39
奇怪,但我很高兴它的工作! – Wevah 2010-07-22 21:23:57