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

时间:2016-05-12 18:31:05

标签: swift select cell nstableview

我可以点击一个单元格并编辑其内容。但是,不是单击/选择一个单元格,而是可以通过编程方式选择一个单元格 - 基本上可以让单元格焦点准备好进行编辑。

有人在StackOverflow上问了一个关于UITableView的问题,答案是: -

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

selectRowAtIndexPath是否选择了一个单元格?在任何情况下,我的NSTableView似乎都没有.selectRowAtIndexPath(...方法。

请指出我可以开始的资源,并为自己找出其余部分。

3 个答案:

答案 0 :(得分:3)

在这里提问之前,我已经用Google搜索了两天。但现在几乎在发布问题之后我立即开始工作了。 事实上它很简单,我无法相信花了这么长时间才弄明白。

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

在我的旅行中,我发现有数十人在问这个问题,但没有简单的答案。或者实际使用NSTableView而不是UITableView并且tableView是“基于视图”而不是基于单元格的答案。所以我希望我在这里发帖可以帮助其中一些人。

答案 1 :(得分:0)

如果您只想突出显示表格视图单元格或行,并且还可以通过NSTablView的 tableViewSelectionDidChange 委托方法对其执行一些操作,则

Use可以使用此方法。

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

答案 2 :(得分:0)

我觉得这很干净...作为单元格的扩展

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

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