NSArrayController子类中多个更改的单个模型更新

时间:2014-05-10 22:01:20

标签: objective-c cocoa key-value-observing nsarraycontroller

我使用this post中包含的代码作为起点,实现了一个NSArrayController子类来实现带绑定的行重新排序。在-tableView:acceptDrop:row:dropOperation:方法中,我执行以下操作:

[self removeObjectAtArrangedObjectIndex:removeIndex];
[self insertObject:object atArrangedObjectIndex:insertIndex];

上面的代码更新了模型两次(每个语句一个)。 为了我的目的,我想只有一个更新。

有没有办法实现这个目标?

感谢。

2 个答案:

答案 0 :(得分:0)

如果要将对阵列的许多更改合并到一个操作中,总是有可能替换整个阵列。

这可能会对例如但是,UI中的对象绑定到您的数组。

答案 1 :(得分:0)

我最终做了以下事情:

[_content removeObject: [objects objectAtIndex: removeIndex]]; // < Here's the hack
[self insertObject:object atArrangedObjectIndex:insertIndex];

其中_content实际上是控制器的内容数组 在我的情况下,上述工作正常(如我的问题所述)。