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
}

注意:这并完全回答您的问题,因为您在新选择发生后要求更改,而这只是之前给出的。尽管如此,我还是希望这就足够了。