Всплывающее окно NSMenu всегда выделяет первый элемент NSMenuItem

У меня есть NSButton, который при нажатии вызывает [NSMenu popUpMenuPositioningItem:atLocation:inView:]. Меню всплывает в нужном месте, однако самый верхний элемент NSMenuItem всегда выделяется синим цветом, как если бы мышь находилась над ним, за исключением того, что это не так. Кажется, я не могу найти способ управлять подсветкой NSMenuItem.

Глядя на скриншот, вы можете видеть, что меню выделено, хотя мышь все еще находится над NSButton.

введите здесь описание изображения

Как я могу это исправить? Я не хочу, чтобы что-то выделялось при нажатии кнопки NSButton.


person Carter    schedule 05.05.2012    source источник


Ответы (2)


Если вы передадите nil в качестве первого аргумента в popUpMenuPositioningItem:atLocation:inView:, тогда ничего не будет выбрано.

person rdelmar    schedule 06.05.2012

Вместо того, чтобы открывать меню самостоятельно, замените NSButton на NSPopUpButton, настроенный на раскрывающийся тип, с отключенным флажком Bordered (возможно, вам придется включить его, а затем снова отключить), возможно, со стилем стрелки, установленным на Нет (хотя я бы оставил).

person Peter Hosey    schedule 06.05.2012
comment
Этот вариант пришел мне в голову, и хотя я уверен, что он работает, на самом деле это не ответ на мой вопрос. Мне не нужно использовать NSPopupButton, когда NSMenu popUpMenuPositioningItem:atLocation:inView: должен работать. - person Carter; 06.05.2012