未调用 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 加载和选择有效 - 这让我找到了这个解决方案。
在代码中我有这样的东西:
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 加载和选择有效 - 这让我找到了这个解决方案。