当用户滚动浏览NSTableView时,我需要动态加载数据。例如,该表可能显示50行,并且随着它进一步滚动,我需要从网络中获取更多数据。对象/行的数量是事先已知的,因此我希望表从一开始就具有正确的行数,但在加载数据时显示空单元格。

我正在使用Core Data,因此很容易使用绑定将表连接到我的模型。这还将照顾到随着数据的输入和解析而更新的单元。我试图弄清楚如何通过子类化NSArrayController来做到这一点,但是据我所知,没有任何信息从表流向控制器,而实​​际上哪些行需要数据。因此,我正在考虑实现NSTableViewDataSource,在这里我可以轻松地检查表是否滚动到可用数据的行之外。另一方面,我不知道是否可以通过此解决方案轻松地自动更新单元格。

最佳答案

万一有人碰到这个,这是我自己的答案:

是的,您需要在控制器上实现NSTableViewDataSource,观察数据上的更改,并在发生更改时在表上手动调用reloadData。这样做的主要原因是您可以将数据的加载推迟到实际需要时(当表视图滚动时)。使用数据源协议可让您了解所请求的索引。

10-08 08:12