Visualizza personalizzata in NSMenuuiteem disabilita la selezione NSPOPUPButton
-
28-10-2019 - |
Domanda
Voglio personalizzare un A NSPopUpButton
Quindi ho implementato un CustomMenuItemView
Quale in questo momento ha solo il seguente codice (a scopo di test):
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] set];
NSRectFill(dirtyRect);
}
Ora, per ogni NSMenuItem
Aggiungo al NSMenu
in myPopUpButton.menu
Ho impostato la vista sulla mia vista personalizzata:
NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Some title" action:NULL keyEquivalent:@""];
menuItem.view = [[CustomMenuItemView alloc] initWithFrame:NSMakeRect(0, 0, 100, 25)];
Quando eseguo il mio programma e apro il pulsante di popup, la selezione di menuuitem sembra disabilitata (cioè non succede nulla quando faccio clic su di esso).
Immagino che non sia effettivamente disabilitato; Semplicemente non risponde agli eventi. Devo aggiungere un po 'di gestione degli eventi nella mia vista personalizzata? Se é cosi, come?
Soluzione
Ho risolto il problema aggiungendo il mouseUp
metodo al mio CustomMenuItemView
:
- (void)mouseUp:(NSEvent*) event
{
NSMenu *menu = self.enclosingMenuItem.menu;
[menu cancelTracking];
[menu performActionForItemAtIndex:[menu indexOfItem:self.enclosingMenuItem]];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow