Ich versuche, ein Popup-Menü anzuzeigen, wenn ich mit der Maus auf eine Schaltfläche klicke. Die Schaltfläche sollte gedrückt erscheinen, wenn die Maus gedrückt wird, und beim Hochziehen der Maus wieder "entriegelt" werden, unabhängig davon, ob einer der Menüpunkte ausgewählt wurde. Ähnlich wie bei der "+"-Schaltfläche des Expose/Space Preference Panels zum Hinzufügen von Anwendungen.
Bislang habe ich 3 Methoden ausprobiert:
-
Gesendete Aktion, wenn die Schaltfläche angeklickt wird. Aber hier das Pop-up-Menü erscheinen auf Maus nach oben statt Maus nach unten
-
Unterklasse NSButton und überschreiben mouseDown:. Das Popup-Menü erscheint beim Herunterdrücken der Maus, ich kann einen beliebigen Menüpunkt auswählen. Aber wenn das Popup-Menü verschwunden ist, erscheint die Schaltfläche gedrückt. Daher muss ich noch einmal klicken, um die Schaltfläche "un drücken", bevor ich die gleiche Aktion wieder bekommen kann.
-
NSEvent addLocalMonitorForEventsMatchingMask. Ähnliches Verhalten wie bei 2.
Haben Sie einen Vorschlag? Ich denke, Methode 2 oder 3 ist der richtige Weg, müssen nur "un drücken" die Taste auf Maus nach oben.