这个让我很难过,虽然我知道这很简单。
我有多个ViewControllers,每个ViewControllers都有一个表视图,用于显示特定于控制器的数据列表。 4个中的3个完美地工作。但是,我显然遗漏了第四个内容,因为.reloadData()永远不会调用Delegate方法。没有编译器错误,因为某种原因从不调用我的委托方法。
这是我的课程设置,包括我的连接插座变量:
class performanceViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate {
//--------------------------------
// OUTLET CONNECTIONS
//--------------------------------
@IBOutlet weak var displayPerformanceList: NSTableView!
我还实现了以下两个委托函数:
func numberOfRows(in tableView: NSTableView) -> Int {
和
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
但由于某种原因,当我执行自定义函数时,这两个函数都没有被调用:
func redrawViews() {
self.displayPerformanceList.reloadData()
}
(注意:.reloadData包含在一个函数中,因为它还会执行其他我尚未添加的内容。)
我在两个委托函数中添加了断点,这就是我知道它们没有被执行的方式。
我知道这会变成一些我错过的东西,因为我在其他三个自定义viewControllers中工作...我不能为我的生活弄清楚我错过了什么... < / p>
任何想法都将不胜感激!
:)
答案 0 :(得分:2)
好吧,经过更多的讨论并遵循一些教程后,我发现了我的问题。我完全忘了将NSTableView数据源和委托链接到Interface Builder中的控制器!
卫生署!
留下这个问题/答案,以防其他人被此抓住。 :)