Unter SWIFT 4.1 Sie legen die doubleAction-Methode des TableView-Objekts in Ihrem Code so fest, dass eine @ objc-Funktion mithilfe eines #selector (nameOfYourFunction) ausgeführt wird.
Innerhalb dieser Funktion rufen Sie einen Segue auf. Sie können Ihr neues Fenster mit dem Ursprungsfenster von InterfaceBuilder verknüpfen (nicht mit dem NSTableView-Objekt, sondern mit dem eigentlichen ViewController-Objekt.
Führen Sie dann alle Einstellungen für das neue Fenster durch, um sich auf den Übergang vorzubereiten:
Okay zuerst auf Interface Builder:
Geben Sie diesem Abschnitt natürlich eine Kennung:
Als nächstes in unserem ersten View Controller (wo sich die Tabellenansicht befindet) Code:
override func prepare(for segue: NSStoryboardSegue, sender: Any?) {
if segue.identifier?.rawValue == "segueToYourNewWindow" {
let yourNewWindow = segue.destinationController as! newWindowViewController
yourNewWindow.selectedRowVariable = thisTableView.clickedRow
}
Dann brauchen wir eine Funktion, um den Übergang zum Doppelklick der Tabellenansicht durchzuführen. Diese Funktion wird mit einem #selector aufgerufen und muss daher für Objective C sichtbar sein (auch wenn wir in Swift programmieren). Wir starten die Funktion einfach mit @ Objc das ist es.
@objc func doubleClickOnResultRow() {
if (thisTableView.selectedRow > -1 ) {
performSegue(withIdentifier: NSStoryboardSegue.Identifier(rawValue: "segueToYourNewWindow"), sender: nil)
}
}
Schließlich setzen wir diese Funktion auf die doubleAction-Methode der TableView im ersten Setup-Teil unseres Codes wie folgt:
override func viewDidLoad() {
super.viewDidLoad()
thisTableView.doubleAction = #selector(doubleClickOnResultRow)
}