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



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

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

let indexPath = NSIndexPath(forRow: 2, inSection: 0)
tableView.selectRowAtIndexPath(indexPath, animated: true, scrollPosition: .Middle)

selectRowAtIndexPath是否选择单元格?无论如何,我的NSTableView似乎没有.selectRowAtIndexPath(…方法).

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

在这里提问之前,我已经在谷歌上搜索了两天了。但现在,在发布了这个问题后,我几乎立刻就设法让它发挥了作用。事实上,它如此简单,我不敢相信花了这么长时间才弄清楚。

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

在我的旅行中,我发现有几十个人在问这个问题,但没有简单的答案。或者当tableView是"基于视图"而不是基于单元格时,实际使用NSTableView而不是UITableView的答案。所以我希望我在这里发布这篇文章能帮助到其中的一些人。

Use可以使用它,如果您只想突出显示表视图单元格或行,并通过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)
    }
}

相关内容

最新更新