NSTableView旧选择

时间:2015-08-13 20:12:36

标签: macos cocoa nstableview

如何在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)")

2 个答案:

答案 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