Я создаю всплывающее меню программным способом и обновляю его с помощью меню метода делегата menuNeedsUpdate: (NSMenu *), а затем отображаю его с помощью popUpMenuPositionItem: nil atLocation: mouseLoc inView: nil method.
Работает нормально, если речь идет об управлении мышью. Однако при использовании клавиатуры (букв или клавиш со стрелками) я заметил, что она вызывает menuNeedsUpdate: для всего, для корневого меню и подменю. Это довольно неэффективно и делает использование меню через клавиатуру медленным.
Почему это происходит? Есть ли способ обойти это или остановить?