在代码中,我有这样的东西:
let scrollView = NSScrollView()
let tableView = NSTableView()
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
tableView.delegate = self
tableView.dataSource = self
tableView.headerView = nil
scrollView.documentView = tableView
scrollView.hasVerticalScroller = true
self.view.addSubview(scrollView)
}
都声明了两个必需的方法(
numberOfRows
和标题中的)。 TableView在视图中可见,可以滚动和选择。 tableViewSelectionDidChange
正常工作,我可以通过tableView.selectedRow
获取所选行的索引。但是所有单元格都是空的,因为tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int)
不需要任何单元格。我认为,问题在于tableView无法确定哪些单元格现在可见。但是我不知道该怎么办 最佳答案
好吧,我挣扎了片刻,但很快就明白了。您生成的tableView
很好。
唯一缺少的是一列。
您只需添加一列即可:
tableView.addTableColumn(NSTableColumn(identifier: "Column"))
表格视图在列内显示其视图。大多数tableViews只有一列,并且标题隐藏了,我们忘记了它们甚至存在。
没有任何列,其他所有内容仍然可以正常工作。 BackgroundRows的加载和选择工作正常-这使我得以解决此问题。
关于swift - NSTableView viewFor tableColumn委托(delegate)方法未调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40596980/