Vista personalizada en nsmenuitem deshabilita la selección de nspopupbutton
-
28-10-2019 - |
Pregunta
Quiero personalizar una NSPopUpButton
Entonces he implementado un CustomMenuItemView
que en este momento solo tiene el siguiente código (para fines de prueba):
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] set];
NSRectFill(dirtyRect);
}
Ahora, por cada NSMenuItem
Agrego al NSMenu
en myPopUpButton.menu
Establecí la vista en mi vista personalizada:
NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Some title" action:NULL keyEquivalent:@""];
menuItem.view = [[CustomMenuItemView alloc] initWithFrame:NSMakeRect(0, 0, 100, 25)];
Cuando ejecuto mi programa y abro el botón emergente, la selección de menuitem parece deshabilitada (es decir, nada sucede cuando hago clic en él).
Supongo que en realidad no está deshabilitado; Simplemente ya no responde a los eventos. ¿Necesito agregar algún manejo de eventos en mi vista personalizada? ¿Si es así, cómo?
Solución
Resolví el problema agregando el mouseUp
Método a mi CustomMenuItemView
:
- (void)mouseUp:(NSEvent*) event
{
NSMenu *menu = self.enclosingMenuItem.menu;
[menu cancelTracking];
[menu performActionForItemAtIndex:[menu indexOfItem:self.enclosingMenuItem]];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow