我有一个绑定到NSTableView的NSArrayController。有了这个,我有典型的添加/删除按钮。
虽然添加项目非常简单(我调用一个方法,创建一个具有默认值的对象并添加它)我在从控制器中删除对象时遇到问题。 我知道当使用ArrayController中的remove动作连接按钮时,我可以轻松地执行此操作。但这不是我想要的。我需要手动删除对象,因为我有一些额外的代码要处理。
Anway,删除对象似乎远比我预期的要复杂得多。它已经尝试过了:
NSArray *items = [doToItemsArrayController selectedObjects];
[doToItemsArrayController removeSelectedObjects:items];
或
NSIndexSet *iSet = [doToItemsArrayController selectionIndexes];
[doToItemsArrayController removeSelectionIndexes:iSet];
它们似乎都没有用。如何使用Objective-C代码从NSArrayController中删除所选对象?
答案 0 :(得分:6)
您可以使用以下任何方法删除对象。他们独立于选择。
– removeObjectAtArrangedObjectIndex:
– removeObjectsAtArrangedObjectIndexes:
– remove:
– removeObject:
– removeObjects:
如果要从内容数组中删除所选对象,则可以使用以下方法获取所选对象,然后将其插入上述方法之一。
– selectionIndex
– selectionIndexes
答案 1 :(得分:1)
您可以使用-removeObjects:
实际删除对象,而不是从选区中删除它们:
[doToItemsArrayController removeObjects:items];
答案 2 :(得分:0)
您尝试的方法是从选择中删除对象,而不是从阵列中删除对象。为什么不调用remove:
操作方法?