NSTableView 旧选择
NSTableView old selection
如何在 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)")
您可以通过
获取
tableView.selectedRow
在选择单元格之前,在 delegate
上调用函数 func tableView(tableView: NSTableView, shouldSelectRow row: Int)
。在这里,您可以看到当前选择的行和建议的选择。
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
}
注意:这并完全回答您的问题,因为您在新选择发生后要求更改,而这只是之前给出的。尽管如此,我还是希望这就足够了。
如何在 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)")
您可以通过
获取tableView.selectedRow
在选择单元格之前,在 delegate
上调用函数 func tableView(tableView: NSTableView, shouldSelectRow row: Int)
。在这里,您可以看到当前选择的行和建议的选择。
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
}
注意:这并完全回答您的问题,因为您在新选择发生后要求更改,而这只是之前给出的。尽管如此,我还是希望这就足够了。