всплывающее меню, требующее обновления всех меню при каждом нажатии - PullRequest
1 голос
/ 20 июля 2010

Я создаю всплывающее меню программным способом и обновляю его с помощью меню метода делегата menuNeedsUpdate: (NSMenu *), а затем отображаю его с помощью popUpMenuPositionItem: nil atLocation: mouseLoc inView: nil method.

Работает нормально, если речь идет об управлении мышью. Однако при использовании клавиатуры (букв или клавиш со стрелками) я заметил, что она вызывает menuNeedsUpdate: для всего, для корневого меню и подменю. Это довольно неэффективно и делает использование меню через клавиатуру медленным.

Почему это происходит? Есть ли способ обойти это или остановить?

1 Ответ

2 голосов
/ 21 июля 2010

Я бы попробовал реализовать menuHasKeyEquivalent:forEvent:target:action: для вашего делегата (и всегда возвращать NO, если вы ничего не знаете в меню, имеющем эквивалент ключа).

...