2017-05-21 2 views
0

Ich habe eine Gliederungsansicht mit einer benutzerdefinierten Zelle. alles funktioniert gut, aber ich muss wissen, wenn eine Taste gedrückt wurde, in welcher Zeile Nummer der diese Taste ist.swift 3 Überprüfen Sie die Zeile, in der die Taste gedrückt wurde

Wie kann ich diese Zeilennummer bekommen?

+0

Sie können es hier finden, hoffen, dass dies hilft. http://stackoverflow.com/questions/28659845/swift-how-to-get-the-indexpath-row-when-a-button-in-a-cell-ist-ppt –

+0

sry, vielleicht muss ich das sagen Ich benutze eine nsoutlineview anstelle einer Tabellenansicht (mein Fehler) und dass ich für OS X, nicht für iOS – Ghost108

Antwort

0

Sie könnten Ihre Schaltfläche Aktion zu einem IBAction in Ihrer View-Controller verdrahten (oder was auch immer weiß um die Gliederungsansicht) und row(for:) auf der Gliederungsansicht aufrufen:

@IBAction func buttonClicked(_ sender: NSButton) { 
    print("button row:", outlineView.row(for: sender)) 
} 

Gerade von den docs:

Diese Methode wird normalerweise in der Aktionsmethode für einen NSButton (oder NSControl) aufgerufen, um herauszufinden, welche Zeile (und Spalte) die Aktion ausführen soll.

+0

programmieren, aber ich kann nicht eine IBAction meiner Schaltfläche in der View-Controller-Klasse erstellen, weil mein Butte der benutzerdefinierten Zelle zugeordnet ist Klasse – Ghost108

+0

Was meinst du mit du kannst nicht? Sie können die Aktion an jedes Objekt senden. Oder erstellen Sie Ihre Schnittstelle in Code und die benutzerdefinierte Zelle weiß nicht über die Gliederungsansicht? Beachten Sie in jedem Fall, dass Sie Aktionen an den Ersthelfer senden können (indem Sie das Ziel im Code auf Null setzen oder eine Verbindung zu "First Responder" im Interface Builder herstellen). – thm

Verwandte Themen