2017-07-15 1 views
0

J'essaye d'envoyer une action à mon activité personnalisée dans le premier répondeur à partir de la barre d'outils. Pour un bouton d'image, je sais que je peux glisser et déposer au premier répondeur. Mais je voulais avoir 3 boutons en contrôle segmenté. Il semble que je ne peux pas définir l'action individuelle de la cellule segmentée du storyboard. Donc, mon idée suivante était d'envoyer l'action directement au contrôleur Windows, et à partir de là, je pourrais essayer de l'envoyer à l'action personnalisée de mon premier répondeur. J'ai essayé le code suivant sans succès.Comment appeler l'activité de l'utilisateur dans le code

@IBAction func visibilityChanged(_ sender: NSSegmentedControl) { 
    switch sender.selectedSegment { 
    case 0: 
     self.try(toPerform: Selector(("showStructure")), with: sender) 
    case 1: 
     self.try(toPerform: Selector(("showActivity")), with: sender) 
    case 2: 
     self.try(toPerform: Selector(("showOutput")), with: sender) 
    default: 
     break 
    } 
} 

était ma mauvaise approche? Si oui, comment dois-je le faire? Si non, quel est le problème avec mon code?

Répondre

1

self.try(toPerform: Selector(("showStructure")), with: sender) envoie showStructure à self qui est le contrôleur de fenêtre. Envoyer l'action au premier répondeur avec sendAction(_:to:from:) de NSApplication.

NSApp.sendAction(#selector(showStructure(_:)), to: nil, from: sender) 
+0

Merci. Je l'ai résolu avec le code ci-dessous. NSApp.sendAction (Selector (("showStructure:")), à: nil, de: expéditeur) –