всплывающее меню, призывающее к обновлению всех меню на каждом нажатии клавиши

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

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

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

1
задан the979kid 20 July 2010 в 19:59
поделиться

1 ответ

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

2
ответ дан 2 September 2019 в 22:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: