我注意到我的子类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/