我注意到我的子类os NSTreeController仅在调用newObject方法时运行add:,但对于addChild:却不运行

我发现this thread在讨论同样的问题。虽然在这种情况下,用户在“核心数据”模式下使用树控制器,但是我将自己设置为使用特定的“类”(对象模式)。

addChild:不使用newObject方法的原因可能是什么?

如果newObject被称为add:,我看不出为什么它不适用于addChild:。我在Apple的SourceView演示应用程序中确认了此行为,方法是用子类替换OutlineController,并将按钮连接到add:addChild:-再次只有add:调用newObject。我发现这确实是非常奇怪的行为。

最佳答案

找到answer in the docs


  add:和insert:操作使用newObject方法来创建
  添加到集合中的对象。在对象模式下,addChild :,
  和insertChild:创建由objectClass指定的类的对象,
  但不要使用newObject方法来这样做。


至少它说的就是这样。尽管它与类引用矛盾。他们忽略了解释为什么会这样的原因。

关于objective-c - NSTreeController addChild:不调用newObject,而是add:(类/对象模式),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20454217/

10-14 22:03