Benutzerdefinierte Ansicht in NSMenuitem deaktiviert die Auswahl von NSPOPUPButton
-
28-10-2019 - |
Frage
Ich möchte eine anpassen NSPopUpButton
Also habe ich eine implementiert CustomMenuItemView
Was derzeit nur den folgenden Code hat (zu Testzwecken):
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] set];
NSRectFill(dirtyRect);
}
Jetzt für jeden NSMenuItem
Ich füge dem hinzu NSMenu
in myPopUpButton.menu
Ich habe die Ansicht auf meine benutzerdefinierte Ansicht festgelegt:
NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Some title" action:NULL keyEquivalent:@""];
menuItem.view = [[CustomMenuItemView alloc] initWithFrame:NSMakeRect(0, 0, 100, 25)];
Wenn ich mein Programm ausführe und die Popup -Taste öffne, scheint die Menuitem -Auswahl deaktiviert zu sein (dh nichts passiert, wenn ich darauf klicke).
Ich vermute, dass es nicht wirklich deaktiviert ist; Es reagiert einfach nicht mehr auf Ereignisse. Muss ich in meiner benutzerdefinierten Ansicht ein Event -Handling hinzufügen? Wenn das so ist, wie?
Lösung
Ich habe das Problem gelöst, indem ich das hinzugefügt habe mouseUp
Methode zu meinem CustomMenuItemView
:
- (void)mouseUp:(NSEvent*) event
{
NSMenu *menu = self.enclosingMenuItem.menu;
[menu cancelTracking];
[menu performActionForItemAtIndex:[menu indexOfItem:self.enclosingMenuItem]];
}