如何在NSTableView(Swift)中删除一行

时间:2016-11-06 15:58:46

标签: swift xcode macos nstableview

我已经能够将字符串/数据添加到从secondViewController到firstViewController的表中,但现在我希望用户也能够删除行。 我怎样才能删除该行?

更新:所以这里有一些更详细的信息: 这是我用来在1stVC中创建表的代码。

func numberOfRows(in tableView: NSTableView) -> Int {
    return arrayData.count
}

func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
    return arrayData[row]
}

我也设置了一个数组,它通过委托从2ndVC获取数据。来自2ndVC的值存储在1stVC中名为“data”的变量中,然后添加到这样的数组中:

arrayData.append(data!)

现在我想放一个删除按钮,可以删除行/插入的数据。

谢谢!

1 个答案:

答案 0 :(得分:3)

通常的方法是从数据源数组中删除object,然后在表视图上调用removeRowsAtIndexPaths:withAnimation:

if let index = arrayData.index(of: object) {
    arrayData.remove(at: index)
    let indexSet = IndexSet(integer:index)
    tableView.removeRows(at:indexSet, withAnimation:.effectFade)
}