Cocoa:从NSArrayController中删除Item

时间:2010-05-30 15:29:06

标签: cocoa binding nsarraycontroller

我有一个绑定到NSTableView的NSArrayController。有了这个,我有典型的添加/删除按钮。

虽然添加项目非常简单(我调用一个方法,创建一个具有默认值的对象并添加它)我在从控制器中删除对象时遇到问题。 我知道当使用ArrayController中的remove动作连接按钮时,我可以轻松地执行此操作。但这不是我想要的。我需要手动删除对象,因为我有一些额外的代码要处理。

Anway,删除对象似乎远比我预期的要复杂得多。它已经尝试过了:

NSArray *items =  [doToItemsArrayController selectedObjects];
[doToItemsArrayController removeSelectedObjects:items]; 

NSIndexSet *iSet = [doToItemsArrayController selectionIndexes];
[doToItemsArrayController removeSelectionIndexes:iSet];

它们似乎都没有用。如何使用Objective-C代码从NSArrayController中删除所选对象?

3 个答案:

答案 0 :(得分:6)

您可以使用以下任何方法删除对象。他们独立于选择。

– removeObjectAtArrangedObjectIndex:
– removeObjectsAtArrangedObjectIndexes:
– remove:
– removeObject:
– removeObjects:

如果要从内容数组中删除所选对象,则可以使用以下方法获取所选对象,然后将其插入上述方法之一。

– selectionIndex
– selectionIndexes

答案 1 :(得分:1)

您可以使用-removeObjects:实际删除对象,而不是从选区中删除它们:

[doToItemsArrayController removeObjects:items];

答案 2 :(得分:0)

您尝试的方法是从选择中删除对象,而不是从阵列中删除对象。为什么不调用remove:操作方法?