3

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

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

无论如何,移除对象似乎比我预期的要复杂得多。它已经尝试过:

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

或者

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

它们似乎都不起作用。如何使用 Objective-C 代码从 NSArrayController 中删除选定的对象?

4

3 回答 3

7

您可以使用这些方法中的任何一种来删除对象。它们独立于选择。

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

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

– selectionIndex
– selectionIndexes
于 2011-01-01T17:07:25.770 回答
1

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

[doToItemsArrayController removeObjects:items];
于 2010-05-30T18:10:10.460 回答
0

您尝试的方法是从 selection中删除对象,而不是从数组中删除对象。为什么不直接调用remove:action 方法呢?

于 2010-05-30T17:51:15.690 回答