【问题标题】:NSTableView Delegate Methods aren't getting called by .reloadData().reloadData() 没有调用 NSTableView 委托方法
【发布时间】:2018-02-13 22:34:25
【问题描述】:

虽然我知道这很简单。

我有多个 ViewController,每个 ViewController 都有一个表格视图来显示特定于控制器的数据列表。四分之三的工作完美。但是,我显然遗漏了第四部分,因为 .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 被包装在一个函数中,因为它还将执行我尚未添加的其他事情。)

我在两个委托函数中都添加了断点,这就是我知道它们没有被执行的方式。

我知道这将是我错过的一些愚蠢的事情,因为我在其他三个自定义视图控制器中工作...我只是无法为我的生活弄清楚我错过了什么...

任何想法将不胜感激!

:)

【问题讨论】:

    标签: delegates nstableview reloaddata


    【解决方案1】:

    好吧,在浏览了更多内容并遵循了一些教程之后,我发现了我的问题。我完全忘记将 NSTableView 数据源和委托链接到 Interface Builder 中的控制器!

    哇!

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

    【讨论】:

    • 刚刚也被这个烫伤了。谢谢!
    猜你喜欢
    • 2017-03-28
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2020-11-14
    • 2020-11-28
    相关资源
    最近更新 更多