Есть ли полное действие для NSTableView? - PullRequest
1 голос
/ 20 июня 2020

Я пытаюсь реализовать действие смахивания для удаления в строке 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.

...