【问题标题】:How to delete a row in NSTableView (Swift)如何在 NSTableView (Swift) 中删除一行
【发布时间】:2017-03-19 23:32:44
【问题描述】:

我已经能够将字符串/数据添加到从 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)从第一个或第二个视图控制器中删除行? 2)你能展示代码如何在第一个视图控制器中添加行并发送到第二个视图控制器(例如,它是通过 segue 还是其他方式完成的?)
  • 嘿!所以我刚刚更新了帖子。

标签: swift xcode macos nstableview


【解决方案1】:

通常的方法是从数据源数组中删除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)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 2010-11-21
    • 2019-02-14
    相关资源
    最近更新 更多