Пользовательский просмотр в nsmenuitem отключает выбор NSPopupbutton

StackOverflow https://stackoverflow.com/questions/8851844

Вопрос

Я хочу настроить NSPopUpButton Итак, я внедрил CustomMenuItemView который сейчас имеет только следующий код (для целей тестирования):

- (void)drawRect:(NSRect)dirtyRect
{
    [[NSColor redColor] set];
    NSRectFill(dirtyRect);
}

Теперь для каждого NSMenuItem Я добавляю в NSMenu в myPopUpButton.menu Я установил представление в свой пользовательский вид:

NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Some title" action:NULL keyEquivalent:@""];
menuItem.view = [[CustomMenuItemView alloc] initWithFrame:NSMakeRect(0, 0, 100, 25)];

Когда я запускаю свою программу и открываю кнопку всплывающего окна, выбор Menuitem кажется отключенным (т.е. ничего не происходит, когда я нажимаю на нее).

Я предполагаю, что это на самом деле не отключено; Это просто больше не отвечает на события. Нужно ли добавить какую -то обработку событий в моем индивидуальном представлении? Если да, то как?

Это было полезно?

Решение

Я решил проблему, добавив mouseUp Метод к моему CustomMenuItemView:

- (void)mouseUp:(NSEvent*) event
{
    NSMenu *menu = self.enclosingMenuItem.menu;
    [menu cancelTracking];
    [menu performActionForItemAtIndex:[menu indexOfItem:self.enclosingMenuItem]];
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top