转到更新我有一个NSTreeController控制器,该控制器将(Content Object)绑定到我的应用程序委托的内容(NSTreeNode *)。我的窗口中也有NSOutlineView绑定到我的控制器。一切正常,内容显示在大纲视图中,但我不能add(addChild,insert等)任何项目,尽管控制器的控制器方法和canAdd(canAddChild等)方法始终返回(我有一个“启用”已绑定到控制器的按钮,此按钮已禁用)。我的错误在哪里?更新我想提供一些有关我的情况的更多信息。我有一个MyNode类:@interface MyNode : NSTreeNode { NSString* title;}@property (retain) NSString* title;@end我的笔尖文件中也有NSTreeController对象。在IB中,NO设置为childrenKeyPath,并且childNodes和countKeyPath为空。控制器模式设置为isLeafKeyPath,类名称为Class。内容对象(不是内容数组)绑定到MyNode的MyDocument属性:@property (readonly) MyNode* rootNode;...rootNode = [[MyNode alloc] init];rootNode.title = @"Root";MyNode *childNode = [[MyNode alloc] init];childNode.title = @"Child";[[rootNode mutableChildNodes] addObject:childNode];我的窗口中有NSOulineView,它的rootNode绑定到TreeController的content。显示内容。我什至可以编辑节点的标题,但是不能通过TreeController添加或插入任何(子)节点。我有2个按钮:连接到TreeController的arrangedObjects和addChild操作并启用的“添加子项”和“插入子项”绑定到TreeController的insertChild和canAddChild属性。按钮已禁用..我无法添加或插入任何子节点。错误在哪里?更新2我有个好消息=)我这样更改了Document类:@interface MyDocument : NSDocument { NSMutableArray *rootNodes; MyNode* rootNode;}@property (readonly) NSArray* rootNodes;..rootNodes = [[NSMutableArray alloc] init];rootNode = [[MyNode alloc] init];rootNode.title = @"Root";MyNode* childNode = [[MyNode alloc] init];childNode.title = @"Child";[[rootNode mutableChildNodes] addObject:childNode];[rootNodes addObject:rootNode];并将Content Array(不是Content Object)绑定到canInsertChild属性,一切正常。为什么addXXX方法不能与单个对象一起使用?我在文档中找不到关于它的任何信息...为什么TreeController可以将根元素添加到MyDocument.rootNodes? rootNodes是rootNodes,而不是NSArray。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 我想我明白了!尝试将childrenKeyPath设置为mutableChildNodes。 (adsbygoogle = window.adsbygoogle || []).push({});
10-08 05:23