NSTableViewRowAction - сдвинуть назад после нажатия - PullRequest
0 голосов
/ 03 февраля 2019

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

Я обнаружил, что приложение Apple Mail прекрасно справляется с этим, после нажатия кнопки «Пометить как прочитанное / непрочитанное» после скольжения одной из ячеек оно выполнило свою работуи автоматически сдвинется назад.Я просто хочу найти способ сделать то же самое.

Я провел исследование о том, как этого добиться, но я не могу найти решение для этого, есть кто-нибудь, кто может мне помочь, пожалуйста?Я использую Xcode 10 с Swift 4 на macOS 10.14.

1 Ответ

0 голосов
/ 06 февраля 2019

Попробуйте установить 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]
...