我正在创建自己的可绑定自定义树视图。为此,我想观察 NSTreeController 以更新其项目的多对关系。NSTreeController 绑定到 CD 托管对象上下文。每个深度级别都有自己的 CD 实体,带有 parent/children/isLeaf 属性。我需要在视图中保持相同的层次结构(以及子项的顺序)。如果插入了某些东西,我将开始观察它的 children 属性。我当然需要知道新插入对象的索引路径。
我想确切地知道插入/删除了什么,所以我可以开始观察它是否插入/删除了它的孩子。据我了解,执行此操作的标准方法是在observeValue:forKey ...中查看“更改” NSDictionary,但更改为NULL。
我知道这是一个长期存在的错误,但有一些好的解决方法吗?我已经看到一些示例的视图保存数组,然后当模型更改时,您比较差异。树视图更复杂。这种方式也会浪费内存和 CPU 周期。我有一种正在测试的解决方法。它只是一种作品,所以我不会描述它。