Ich habe eine NSTableView
mit einer Spalte. Ich möchte die Zeilennummer der Zeile drucken, auf die der Benutzer geklickt hat. Ich bin mir nicht sicher, wo ich damit anfangen soll. Gibt es dafür eine Methode?Drucken Sie die Zeilennummer der NSTableView Zeile, auf die der Benutzer geklickt hat
9
A
Antwort
14
Sie die aus dem Tableview selectedRowIndexes
Eigenschaft verwenden, können greifen in die tableViewSelectionDidChange
Methode in Ihrem NSTableView-Delegaten.
In diesem Beispiel ermöglicht das TableView die Mehrfachselektion.
Swift 3
func tableViewSelectionDidChange(_ notification: Notification) {
if let myTable = notification.object as? NSTableView {
// we create an [Int] array from the index set
let selected = myTable.selectedRowIndexes.map { Int($0) }
print(selected)
}
}
Swift 2
func tableViewSelectionDidChange(notification: NSNotification) {
var mySelectedRows = [Int]()
let myTableViewFromNotification = notification.object as! NSTableView
let indexes = myTableViewFromNotification.selectedRowIndexes
// we iterate over the indexes using `.indexGreaterThanIndex`
var index = indexes.firstIndex
while index != NSNotFound {
mySelectedRows.append(index)
index = indexes.indexGreaterThanIndex(index)
}
print(mySelectedRows)
}
0
Verwenden -selectedRowIndexes
Dann können Sie diese Indizes verwenden, um die Daten von Ihrem dataSource
(in der Regel ein Array)
Ich möchte die Textfarbe der ausgewählten Zelle ändern. Wie soll ich das machen? –