我有一个设置,其中一个对象(OTNodeDatum)(对于OutlineTest的OT)是NSTreeNode中表示的对象。 NSTreeNode是NSTreeController的属性页面中显示的类。
我有基于文档的应用,没有核心数据。在MyDocument init上,我使用包含一个项目的NSMutableArray设置内容,NSTreeNode包含一个包含单个属性的表示对象(是,名称)。
添加按钮,添加子按钮,删除按钮,通过界面构建器连接到NSTreeController添加操作等。
它可以解决问题。
当我进行添加时,我得到一个新的空行我可以编辑,但是当我离开单元格时,插入的文本会消失。
当我删除时,事情会被删除。
当我添加孩子时,没有任何事情发生。
我认为我必须继承NSTreeNode或NSTreeController,以便在添加子节点和添加新的表示对象方面获得正确的行为,并添加新的树节点。
这是正确的吗?如果我继承NSTreeController,我会覆盖add addChild,以便做正确的事情吗?还有什么我搞砸了?我似乎无法找到任何指导,虽然我花了很长时间看。
感谢。
John V
答案 0 :(得分:2)
看来,正确的做事方式,或者至少是一种方式,是使用
-(void)insertObject:(id)object atArrangedOjectIndexPath:(int)index;
首先创建representedObject
,使用该代表对象创建一个新的NSTreeNode
,然后插入它。比简单地将添加按钮连接到树控制器更多的工作,但(希望)使用NSTreeNode
的优势弥补了它。