我需要在用户滚动NSTableView
时动态加载数据。例如,该表可能会显示50行,并且当它进一步滚动时,我需要从网络中获取更多数据。事先已知对象/行的数量,因此我希望表从一开始就具有正确的行数,但在加载数据时显示空单元格。
我正在使用Core Data,因此使用绑定将表连接到我的模型很容易。这还可以处理在数据进入和解析时更新的单元格。我试图弄清楚如何通过继承NSArrayController
来做到这一点,但从我可以看出,没有信息从表流到控制器关于哪些行实际需要数据。因此,我正在考虑实现NSTableViewDataSource
,我可以轻松地检查表是否已滚动到数据可用的行之外。另一方面,我不知道是否可以使用此解决方案轻松自动更新单元格。
答案 0 :(得分:3)
如果有人碰到这个,这是我自己的答案:
是,您需要在控制器上实现NSTableViewDataSource,观察数据的变化,并在发生更改时在表上手动调用reloadData
。这样做的主要原因是您可以推迟加载数据直到实际需要(当表视图滚动时)。使用数据源协议可以让您了解请求的索引。