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?

War es hilfreich?

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]];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top