2016-05-25 14 views
0

Mein Ziel ist es, eine Referenz von der Schaltfläche, dem Label oder dem Textfeld innerhalb einer Variablen zu sichern. Das Problem ist, dass ich nicht weiß, auf welche Kontrolle der Benutzer geklopft hat. Ich habe eine einfache Anwendung, die wie folgt aussieht:Referenz auf aktuelles Objekt abrufen

enter image description here

Der Benutzer hat keine Steuer berühren kann.

Es ist einfach genug mit nur diesen drei Kontrollen, weil ich eine Aktion ziehen kann. Aber wenn ich viele davon habe, kann ich nicht mit ihnen umgehen. Gibt es einen allgemeinen Weg, wie ich einen Verweis auf das Steuerelement in einer Variablen sichern kann, damit ich weiß, welches der Steuerelemente aktiv ist?

bearbeiten

Wie schlug ich eine Funktion verwende und die Variable auf den Absender der Funktion zuweisen. Dies ist, wie es aussieht, ist in Code:

var currentObject: NSTextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    myTextfield.action = #selector(myAction) 
} 

func myAction(sender: NSTextField) 
{ 
    print("aktuell: \(sender)") 
    currentObject = sender 
} 

Wie Sie das funktioniert nur für einen NSTextField sehen können. Gibt es eine Möglichkeit, wie die Funktion für jede Steuerung funktioniert?

Antwort

1

Setzen Sie das Attribut tag für jedes Element, und Sie können dann sender.tag überprüfen, um festzustellen, welches Objekt es aufruft.

den Tag einzustellen, wählen Sie den Inspektoren Attribut in der Storyboard (oben rechts - mittlere Taste Dienstprogramme) und für diesen Abschnitt aussehen:

enter image description here

+0

Danke für die Antwort. Bitte sieh dir meinen Schnitt an, weißt du, wie das zu lösen ist? – Anokrize

+0

Wenn Sie wirklich keine weiteren Informationen über das Objekt benötigen, können Sie Ihre Funktion als 'func myAction (sender: AnyObject) 'definieren und dann alle Elemente auf diese ziehen. – sschale

+0

Ja, aber das Problem ist, dass ich auf diese Weise nicht auf die CurrentObject.frame zugreifen kann, die ich später verwenden muss – Anokrize

Verwandte Themen