打印用户点击的行的 NSTableView 行号
Print the NSTableView's row number of the row clicked by the user
我有一个 NSTableView
一栏。我想打印用户点击的行的行号。我不确定我应该从哪里开始。有方法吗?
使用-selectedRowIndexes
然后您可以使用这些索引从您的 dataSource
中获取数据
(通常是一个数组)
您可以在 NSTableView 委托的 tableViewSelectionDidChange
方法中使用来自 tableView 的 selectedRowIndexes
属性。
在本例中,tableView 允许多选。
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([=10=]) }
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)
}
我有一个 NSTableView
一栏。我想打印用户点击的行的行号。我不确定我应该从哪里开始。有方法吗?
使用-selectedRowIndexes
然后您可以使用这些索引从您的 dataSource
中获取数据
(通常是一个数组)
您可以在 NSTableView 委托的 tableViewSelectionDidChange
方法中使用来自 tableView 的 selectedRowIndexes
属性。
在本例中,tableView 允许多选。
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([=10=]) }
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)
}