Xcode-Swift。如何在基于NSTableView的视图中以编程方式选择单元格

Xcode-Swift。如何在基于NSTableView的视图中以编程方式选择单元格,swift,select,cell,nstableview,Swift,Select,Cell,Nstableview,我可以单击单元格并编辑其内容。但是,可以通过编程方式选择单元格,而不是单击/选择单元格-基本上是为编辑提供单元格焦点 StackOverflow上有人问了同样的关于UITableView的问题,给出的答案是:- let indexPath = NSIndexPath(forRow: 2, inSection: 0) tableView.selectRowAtIndexPath(indexPath, animated: true, scrollPosition: .Middle) selectR

我可以单击单元格并编辑其内容。但是,可以通过编程方式选择单元格,而不是单击/选择单元格-基本上是为编辑提供单元格焦点

StackOverflow上有人问了同样的关于UITableView的问题,给出的答案是:-

let indexPath = NSIndexPath(forRow: 2, inSection: 0)
tableView.selectRowAtIndexPath(indexPath, animated: true, scrollPosition: .Middle)
selectRowAtIndexPath是否选择单元格?无论如何,我的NSTableView似乎没有.selectRowatineXpath(…方法)


请给我指出一个资源,我可以从那里开始,然后自己解决剩下的问题。

在这里提问之前,我已经在谷歌上搜索了两天。但现在,在发布问题后,我几乎马上就成功了。 事实上,它是如此简单,我不敢相信花了这么长时间才弄明白

// Assuming we want to programmatically select Column 4, Row 5
myTableView?.editColumn(4, row: 5, withEvent: nil, select: true)

在我的旅行中,我发现很多人都在问这个问题,但没有简单的答案。或者,当tableView是“基于视图”而不是“基于单元格”时,这些答案实际上与NtableView而不是UtableView一起工作。因此,我希望我在这里发布这些内容可以帮助其中的一些人。

如果您只想突出显示table vie,请使用它并通过NSTablView的tableViewSelectionDidChange委托方法对其执行一些操作

mytableView.selectRowIndexes(IndexSet([indexOfTheCellWantToSelect]), byExtendingSelection: true)

我发现这是相当干净的…作为细胞的延伸

extension NSTableViewCell
{
    func select()
    {
        guard let row = self.tableView?.row(for: self) else { return }

        self.tableView?.selectRowIndexes(IndexSet([row]), byExtendingSelection: false)
    }
}