NSMenuItem фокус / ролловер уведомления - PullRequest
1 голос
/ 27 декабря 2011

Я хотел бы ответить на действие focus / rollover от NSMenuItem, я не нашел никаких уведомлений.

Как мне этого добиться?

Спасибо

Ответы [ 2 ]

4 голосов
/ 27 декабря 2011

Назначьте делегата родительскому меню элемента и реализуйте следующий метод:

- (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item
0 голосов
/ 27 декабря 2011

Взгляните на - [NSMenuItem setView:]. Вы можете установить NSMenuItem, чтобы он имел пользовательское представление. Вы должны быть в состоянии написать собственный подкласс NSView, который уведомляет ваш класс контроллера (через уведомления или методы делегирования, или что-то еще) о событиях наведения мыши. Затем настройте NSMenuItem (s) на использование экземпляров вашего подкласса NSView.

Обратите внимание, что если вы воспользуетесь этим подходом, ваш пользовательский вид также будет отвечать за отрисовку элемента меню, включая заголовок, состояние и т. Д. Поэтому вам придется поработать, чтобы элемент меню выглядел и вел себя как стандартный пункт меню ...

...