Я создал простой NSStatusBar
с NSMenu
, установленным в качестве меню. Я также добавил несколько NSMenuItems
в это меню, которые отлично работают (включая селекторы и выделение), но как только я добавляю пользовательский вид (setView:) не выделяется подсветка.
CustomMenuItem *menuItem = [[CustomMenuItem alloc] initWithTitle:@"" action:@selector(openPreferences:) keyEquivalent:@""];
[menuItem foo];
[menuItem setTarget:self];
[statusMenu insertItem:menuItem atIndex:0];
[menuItem release];
И мой метод foo:
- (void)foo {
NSView *view = [[NSView alloc] initWithFrame:CGRectMake(5, 10, 100, 20)];
[self setView:view];
}
Если я удалю метод setView, он выделит.
Я искал и искал и не могу найти способ реализации/включения этого.
Edit
Я реализовал выделение, выполнив код в этом вопросе в моем подклассе NSView:
Представление NSMenuItem (экземпляр подкласса NSView) не выделяется при наведении
#define menuItem ([self enclosingMenuItem])
- (void) drawRect: (NSRect) rect {
BOOL isHighlighted = [menuItem isHighlighted];
if (isHighlighted) {
[[NSColor selectedMenuItemColor] set];
[NSBezierPath fillRect:rect];
} else {
[super drawRect: rect];
}
}