NreableView委托方法不会被.reloadData()调用

时间:2018-02-13 22:34:26

标签: delegates nstableview reloaddata

这个让我很难过,虽然我知道这很简单。

我有多个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>

任何想法都将不胜感激!

:)

1 个答案:

答案 0 :(得分:2)

好吧,经过更多的讨论并遵循一些教程后,我发现了我的问题。我完全忘了将NSTableView数据源和委托链接到Interface Builder中的控制器!

卫生署!

留下这个问题/答案,以防其他人被此抓住。 :)