, я создал простой 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, он будет выделен.
Я выполнил поиск и поиск, но не могу найти способ реализовать / включить это.
Изменить
I реализовано выделение, следуя коду в этом вопросе в моем подклассе 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];
}
}