You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Swift实现NSTableViewRowAction?

没问题,这就把你那段Objective-C的NSTableView行操作代码转换成Swift版本,直接就能用:

对应的Swift版本实现

在你的NSTableViewDelegate扩展或类中,实现对应的方法即可:

func tableView(_ tableView: NSTableView, rowActionsForRow row: Int, edge: NSTableRowActionEdge) -> [NSTableViewRowAction] {
    let deleteAction = NSTableViewRowAction(style: .destructive, title: "Delete") { (action, row) in
        // TODO: 在这里添加你的删除逻辑,比如移除对应数据源、刷新表格等
        print("要删除第\(row)行")
    }
    return [deleteAction]
}

简单说明下和原OC代码的对应点:

  • Swift里的方法签名更简洁,去掉了OC中的返回值类型前缀,参数也更直观
  • 闭包写法替代了OC中的block,语法上更紧凑
  • NSInteger对应Swift的Int,类型转换自动完成
  • 如果你需要添加多个行操作,直接在返回的数组里加入更多NSTableViewRowAction实例就行

内容的提问来源于stack exchange,提问作者Steve B .

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:32:39