我有NSTableView
使用视图控制器作为NSTableViewDataSource
。有时表和它的数据加载很好,但有时它只是空白,并且不调用数据源方法。为什么这种随机行为,以及如何解决这个问题?
答案 0 :(得分:-1)
显然,我错过了NSTableView
文档文档中极其重要的段落:
重要强>
如果在Interface Builder中指定了数据源,则可能会在调用awakeFromNib之前调用用于填充表视图的数据源方法。您应该通过使数据源的numberOfRowsInTableView:方法为尚未配置数据源时的行数返回0来防止这种情况。在awakeFromNib中,初始化数据源时,应始终在表视图上调用reloadData。
现在,我没有在-awakeFromNib
中初始化(我在-viewDidLoad
中进行了初始化),但是这仍然表示您应该始终在表格视图上调用-reloadData
你是。
这很容易弄错;通常,表视图将自动加载其数据,而无需任何额外的reload
调用。但是,在某些罕见的情况下,这似乎无法实现。
因此,为了防止出现此问题:始终在表格视图中调用-reloadData
您是初始化后的数据源 -in -viewDidLoad
,{{1} },或其他一些适当的方法。