Выделение NSMenuItem с помощью настраиваемого представления?

, я создал простой 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];
    }
}

19
задан Community 23 May 2017 в 12:16
поделиться