如何在NSTableView
方法
func tableViewSelectionIsChanging(notification: NSNotification) {
let index = (notification.object as! NSTableView).selectedRow
println(index)
}
func tableViewSelectionDidChange(notification: NSNotification)
let index = (notification.object as! NSTableView).selectedRow
println(index)
}
两种方法都打印相同的值。如何获得因选择而改变的索引/行?
或者简单来说,我如何发表声明
println("\(Selection changed from \(tableView.oldSelectedIndex) to \(tableView.newSelectionIndex)")
答案 0 :(得分:3)
在选择单元格之前,func tableView(tableView: NSTableView, shouldSelectRow row: Int)
上会调用函数delegate
。在这里,您可以看到当前选定的行和建议的选择。
func tableView(tableView: NSTableView, shouldSelectRow row: Int) -> Bool {
// This is the next index
NSLog("Next index: \(row)")
// Make sure that a row is currently selected!
guard self.tableView.selectedRowIndexes.count > 0 else {
return true
}
// Get the currently selected row.
let index = self.tableView.selectedRow
NSLog("Previous index: \(index)")
return true
}
注意:这并没有完全回答您的问题,因为您在新选择发生后已经要求更改 ,而这会给出就在此之前。但我希望这已经足够了。
答案 1 :(得分:0)
你可以通过
获得它tableView.selectedRow