Frage

Ich habe eine benutzerdefinierte Unterklasse von NSCell mit einem NSImageCell erstellt, einige NSTextFieldCells und ein NSPopUpButtonCell.

Ich bin Initialisierung der Pop-up-Zelle mit:

    myPopUpCell = [[NSPopUpButtonCell alloc] init];
    [myPopUpCell setBordered:NO];
    [myPopUpCell setAutoenablesItems:NO];
    [myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]];

Und es in drawInteriorWithFrame:inView: Zeichnung

Alles scheint sehr gut zu funktionieren, mit der Ausnahme, dass, wenn auf der Pop-up-Zelle klicken während meiner Anwendung läuft die Zelle Pop nicht auf. Irgendwelche Vorschläge, was könnte falsch sein?

War es hilfreich?

Lösung

Zeichnung die Pop-up-Knopfzelle in drawInteriorWithFrame:inView: tun wird nur das; zeichnen sie, aber sonst nichts. Klicke Behandlung von Ereignissen ist in keinem Zusammenhang mit Zeichnung, so dass Sie gehen zu müssen, einige Arbeit in Ihrer benutzerdefinierten Zelle tun Mausereignisse zu interpretieren, und wenn sie innerhalb des Rahmens sind Sie für die Pop-up-Taste, geben Sie diese auf die Knopfzelle. Beginnen Sie mit Subklassen, welche die Methoden aufgelistet in den NSCell docs unter der Maus-Tracking, wie –trackMouse:inRect:ofView:untilMouseUp:, und Sie sollten, um herauszufinden, in der Lage sein, was die Knopfzelle handeln richtig zu machen benötigt wird.

Je nachdem, was du tust du da kann es tatsächlich einfacher finden die Titel String selbst, zu zeichnen und nur NSMenu des +popUpContextMenu:withEvent:forView: verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top