我在使用NSTableView时遇到了一些问题。问题是表视图过早地请求数据(它立即请求来自控制器的数据),因为当表视图请求数据时,数据不存在。在NSTableView请求数据时,收集要在表视图中显示的数据的其他方法尚未完成执行。
希望有某种意义!我正在使用Objective-C并使用mac dev(而不是iphone)btw。
无论如何,这有什么办法吗?
提前致谢。
答案 0 :(得分:3)
NSTableView可能会询问数据,因为您已经告诉它有20行数据。一旦它知道有20行,它就会开始要求它。
如果您正在使用NSTableView数据源Delegate,它很简单,只需返回0表示行数,直到所有内容都准备好 - 然后返回有的行数。
IE你需要委托中的这些调用:
– numberOfRowsInTableView:
– tableView:objectValueForTableColumn:row:
如果您没有使用NSTableViewDataSource,并且已经在Interface Builder中连接了控制器,那么您必须以某种方式仅在控制器准备就绪时为其提供数据。
答案 1 :(得分:1)
听起来像是异步填充表视图?如果是这样,您可以在处理响应的方法中调用表视图上的reloadData
或reloadDataForRowIndexes:columnIndexes:
,以便在数据加载后刷新表视图。