在我的应用程序中,我将对象直接添加到ArrayController中。当我想清洁所有物品时,我会做:

[[downloadItemsController content] removeAllObjects];

但是,此命令不会刷新arraycontroller绑定(bind)到的TableView。如果删除所有项目并添加其他新项目,我只会看到该项目。很好,但是如果我不添加任何内容,那么我的表中仍然有所有项目。

如果我做
[downloadItemsController prepareContent];

所有旧项目都从表格 View 中删除,但是我得到的是一个可以编辑的新的空项目。我不想要那样,并且因为我的一列中有一个checkboxcell,所以我总是得到一个带有复选框的行。

删除所有现有项目后,我只需要一个没有任何项目的空表。

最佳答案

要从NSArrayController对象中快速删除所有对象,请执行以下操作:

NSRange range = NSMakeRange(0, [[anArrayController arrangedObjects] count]);
[anArrayController removeObjectsAtArrangedObjectIndexes:[NSIndexSet indexSetWithIndexesInRange:range]];

绑定(bind)应自动更新。参见original SO answer

10-08 10:53