Пользовательский просмотр в nsmenuitem отключает выбор NSPopupbutton
-
28-10-2019 - |
Вопрос
Я хочу настроить 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]];
}
Не связан с StackOverflow