Я создаю всплывающее меню программно и обновляю его с помощью меню метода делегата менюNeedsUpdate: (NSMenu *), а затем отображая его с помощью popUpMenuPositioningItem: nil atLocation: mouseLoc inView : nil метод.всплывающее меню, вызывающее обновление всех меню при каждом нажатии клавиши
Это нормально работает с управлением мышью. Однако при использовании клавиатуры (буквы или клавиши со стрелками) я заметил, что он вызывает menuNeedsUpdate: для всего, корневое меню и подменю. Это довольно неэффективно и делает использование меню с клавиатуры вялым.
Почему это происходит? Любой способ обойти это или остановить?
Блестящий. Это решило. Интересно, однако, я поместил NSLog внутри menuHasKeyEquivalent: forEvent: target: action: метод для отладки, чтобы узнать, вызвана ли она. Ну, он называется так, как я полагаю, поскольку он отлично работает сейчас (не заполняет все меню на каждом нажатии), но NSLog по какой-то причине не подходит. – the979kid
Странно, но я рад, что это сработало! – Wevah