Я пытаюсь реализовать действие смахивания для удаления в строке NSTableView, аналогичное почтовому приложению. Код, который у меня есть, работает, но «порог» для полного смахивания очень высок, и практически невозможно удалить строку с помощью одних жестов, и вам нужно будет щелкнуть вкладку удаления, которая становится видимой.
Is есть ли способ реализовать полные жесты смахивания, аналогичные тем, что в почтовом приложении, или даже iOS представления таблиц?
Мой код, создающий действие:
func tableView(_ tableView: NSTableView, rowActionsForRow row: Int, edge: NSTableView.RowActionEdge) -> [NSTableViewRowAction] {
// left swipe
if edge == .trailing {
let deleteAction = NSTableViewRowAction(style: .destructive, title: "Delete", handler: { (rowAction, row) in
// action code
SafariTabList.tabList.remove(at: row)
tableView.removeRows(at: IndexSet(integer: row), withAnimation: .effectFade)
})
deleteAction.backgroundColor = NSColor.red
return [deleteAction]
} else if edge == .leading {
}
let blankAction = NSTableViewRowAction(style: .regular, title: "", handler: { (rowAction, row) in
// action code
})
blankAction.backgroundColor = NSColor.clear
return [blankAction]
}
Помните, что это вопрос о наборе приложений для macOS.