2014-02-05 10 views
7

Ich schreibe ein Plugin für die Anwendung - benutzerdefinierte Tastenkombination. Ich kann durch seine Ansichten gehen. Ich muss Popup-Menü öffnen, wählen Sie Element darin, öffnen Sie dann sein Untermenü und wählen Sie einen Eintrag im Untermenü.NSMenu programmgesteuert wählen Element

Für jetzt kann ich nur Top Popup-Menü öffnen, indem Sie performClick: zu verwandten NSPopUpButton Element senden.

Wie programmiere ich den Menüpunkt im Menü und öffne das Untermenü?

Ich habe versucht:

  • Anruf selectItem: auf dem NSPopUpButton (und den dazugehörigen NSMenu). Kein Glück und ich sehe eine Idee in der doc: "Beachten Sie, dass während ein Menü Benutzereingaben verfolgt, programmatische Änderungen an das Menü wie Hinzufügen, Entfernen oder Ändern von Elementen im Menü nicht wiedergegeben wird"
  • senden Tastaturereignisse (mit this answer). Kein Glück - kann sein, weil ich einige Schlüssel im Moment des Sendens dieser Ereignisse
  • halte, um irgendwelche Informationen zu finden, wie man es über Zugänglichkeits-API tut, aber ich kann gerade nichts finden, wie man es auf gegenwärtigem verwendet Anwendung (oder auch auf jeder anderen Anwendung, jedoch mit Objective-C)
+0

haben Sie auch in 'performClick:'? – Volker

+0

@Volker was meinst du? Ich öffne Popup-Menü mit 'PerformClick:' auf 'NSPopUpButton' – cody

Antwort

0

Neben @LCC ‚s Antwort, können Sie rufen auch indexOfItem auf NSMenu

NSInteger index = [item.menu indexOfItem:item]; 
[item.menu performActionForItemAtIndex:index]; 
Verwandte Themen