NSTableView在加载时随机清空

时间:2016-12-03 01:25:23

标签: macos cocoa nstableview

我有NSTableView使用视图控制器作为NSTableViewDataSource。有时表和它的数据加载很好,但有时它只是空白,并且不调用数据源方法。为什么这种随机行为,以及如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

显然,我错过了NSTableView文档文档中极其重要的段落:

  

重要

     

如果在Interface Builder中指定了数据源,则可能会在调用awakeFromNib之前调用用于填充表视图的数据源方法。您应该通过使数据源的numberOfRowsInTableView:方法为尚未配置数据源时的行数返回0来防止这种情况。在awakeFromNib中,初始化数据源时,应始终在表视图上调用reloadData。

现在,我没有在-awakeFromNib中初始化(我在-viewDidLoad中进行了初始化),但是这仍然表示您应该始终在表格视图上调用-reloadData你是。

的数据来源

这很容易弄错;通常,表视图将自动加载其数据,而无需任何额外的reload调用。但是,在某些罕见的情况下,这似乎无法实现。

因此,为了防止出现此问题:始终在表格视图中调用-reloadData您是初始化后的数据源 -in -viewDidLoad,{{1} },或其他一些适当的方法。