数据加载到数组后,表不会更新条目

时间:2012-01-30 22:52:45

标签: objective-c macos nsmutablearray cocoa-bindings

我有一个将数据加载到我的表视图中的服务。当服务加载了数据后,我将数据加载到我的模型中:

[self.model.entries removeAllObjects];
[self.model.entries addObjectsFromArray:objects];

现在我想知道这两个调用是否是“绑定兼容”,以便表视图知道它必须更新它直接绑定到self.model.entries的数据。我问这个是因为在服务完成后,表格不再向我的代表询问tableviewcells的数量,所以似乎绑定没有启动。

我想我可以在tableview上调用reloadData,但这不再符合“绑定哲学”,对吗?

请注意,如果模型类不存在,我的模型类将返回新的NSMutableArray。我不清楚这是否是使用绑定的正确方法。

1 个答案:

答案 0 :(得分:1)

对于完全绑定兼容性,您应该通过NSController绑定...在这种情况下,可能是NSArrayController。

通过直接绑定到模型,你打破了MVC模式,不,我不相信NSTableView会在直接绑定到模型时获取更改。

例如,将表视图绑定到NSArrayController的arrangeObjects,并使用NSArrayController方法,例如:

-add:
-removeObjects:
-insert:

管理内容。表格视图自动获取这些更改。