我使用tableView(_:rowActionsForRow:edge:) -> [NSTableViewRowAction]
在表格视图中添加了幻灯片功能,但是我发现当单击前导按钮时,它可以正常工作,但不会向后滑动。
这是我的行操作的代码:
extension ViewController: NSTableViewDelegate {
func tableView(_ tableView: NSTableView, rowActionsForRow row: Int, edge: NSTableView.RowActionEdge) -> [NSTableViewRowAction] {
// some other codes
switch edge {
case .trailing:
// some other codes
case .leading:
let revealInFinderAction = NSTableViewRowAction(style: .regular, title: "Reveal in Finder") { (action, row) in
self.revealInFinder(row: row)
}
revealInFinderAction.backgroundColor = .systemOrange
return [revealInFinderAction]
}
}
}
例如,我的一个按钮执行了“在Finder中显示”作业(revealInFinderAction
),单击该按钮后,它在Finder中显示了文件,但没有t向后滑动。
我发现,在滑动其中一个单元格后,单击“标记为已读/未读”按钮后,Apple的Mail应用程序可以很好地处理此问题,它完成了工作并自动向后滑动。我只想找到一种使同一件事发生的方法。
我已经完成了有关如何实现此目标的研究,但是我找不到解决方案,请问有人可以帮助我吗?我在macOS 10.14上使用带有Swift 4的Xcode 10。
答案 0 :(得分:2)
尝试像这样设置tableView.rowActionsVisible = false
:
case .leading:
let revealInFinderAction = NSTableViewRowAction(style: .regular, title: "Reveal in Finder") { (action, row) in
self.revealInFinder(row: row)
tableView.rowActionsVisible = false
}
revealInFinderAction.backgroundColor = .systemOrange
return [revealInFinderAction]