Zeigt das NSSegmentedControl-Menü an, wenn auf ein Segment geklickt wird, obwohl eine Aktion festgelegt wurde

Ich habe ein NSSegmentedControl auf meiner Benutzeroberfläche mit 4 Tasten. Das Steuerelement ist mit einer Methode verbunden, die je nach angeklicktem Segment verschiedene Methoden aufruft:

- (IBAction)performActionFromClick:(id)sender {
    NSInteger selectedSegment = [sender selectedSegment];
    NSInteger clickedSegmentTag = [[sender cell] tagForSegment:selectedSegment];

    switch (clickedSegmentTag) {
            case 0: [self showNewEventWindow:nil]; break;
            case 1: [self showNewTaskWindow:nil]; break;
            case 2: [self toggleTaskSplitView:nil]; break;
            case 3: [self showGearMenu]; break;
    }
}

An Segment 4 ist ein Menü in der awakeFromNib-Methode angehängt. Ich möchte, dass dieses Menü angezeigt wird, wenn der Benutzer auf das Segment klickt. Zu diesem Zeitpunkt wird es nur gelöscht, wenn der Benutzer auf das Menü klickt und es gedrückt hält. Aus meiner Online-Recherche ergibt sich dies aus der verbundenen Aktion.

Ich arbeite derzeit daran, indem ich Code verwende, um den Ursprungspunkt des Segment-Steuerelements zu ermitteln und das Kontextmenü mit NSMenus aufzurufenpopUpContextMenu:withEvent:forView aber das ist ziemlich hacktastisch und sieht schlecht aus im Vergleich zum Standardverhalten, wenn das Menü unter der segmentierten Kontrollzelle abfällt.

Gibt es eine Möglichkeit, wie ich das Menü nach einem einzigen Klick herunterklappen lassen kann, anstatt das hackige Kontextmenü auszuführen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage