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