Я добавил пользовательский вид в мой подкласс NSMenuItem (который находится в NSStatusMenu), что означает, что по умолчанию он не будет выделен голубым / серым фоном.
Я реализовал этоиспользуя следующий код:
- (void)drawRect:(NSRect)rect {
BOOL isHighlighted = [menuItem isHighlighted];
if (isHighlighted) {
[[NSColor selectedMenuItemColor] set];
[NSBezierPath fillRect:rect];
[menuItem addHover];
} else {
[super drawRect:rect];
[menuItem removeHover];
}
}
- (void)mouseUp:(NSEvent*)event {
NSMenuItem *item = [self enclosingMenuItem];
NSMenu *menu = [item menu];
[menu cancelTracking];
[menu performActionForItemAtIndex:[menu indexOfItem:item]];
}
Элементы меню выделены отлично, и я также могу нажать на каждый элемент;однако, когда я нажимаю на них, они, кажется, сохраняют состояние isHighlighted после повторного открытия меню.
Есть ли способ изменить его, поэтому, когда я нажимаю, выделенное состояние удаляетсякогда я в следующий раз открою меню?