如何使用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 .
相关产品推荐
相关产品推荐

