未调用 NSTableView viewFor tableColumn 委托方法

NSTableView viewFor tableColumn delegate method not called

在代码中我有这样的东西:

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) 调用了 none 个单元格。我认为,问题在于 tableView 现在无法确定哪些单元格是可见的。但是我不知道该怎么办

嗯,纠结了一下,但很快就明白了。你生成的tableView没问题

唯一缺少的是一列。 您可以简单地添加一列:

tableView.addTableColumn(NSTableColumn(identifier: "Column"))

Table 视图在列中显示它们的视图。大多数 tableView 只有一列并且隐藏了 header,我们甚至忘记了它们的存在。

没有任何列,其他一切仍然正常。 BackgroundRows 加载和选择有效 - 这让我找到了这个解决方案。