【发布时间】:2012-07-11 01:31:43
【问题描述】:
我正在设置一个绑定到 NSTreeController 的 NSOutlineView,该 NSTreeController 填充有 NSTreeNode 实例,后者使用 [NSTreeNode treeNodeWithRepresentedObject:...] 附加了我的自定义 NodeData 对象。
大纲视图渲染得很好,所有数据都如预期的那样,一切都很好。
现在在大纲视图的委托中,我试图通过
outlineView:willDisplayCell:forTableColumn:item: 方法。
但是,item 参数不会返回我的自定义数据!
id stuff = [item representedObject];
产生NSTreeNode 类的实例,其中项目是NSTreeControllerTreeNode。
这到底是怎么回事?
根据所有文档和示例代码,我可以找到代表对象调用应该给我 NodeData 对象,我在构建树时填充到 NSTreeNode 中..
完全一无所知,因为我似乎是唯一遇到此问题的人,所以我一定在某处做了一些非常愚蠢的事情 - 但我看不出代码有什么问题。
使用setContent:[dataSource sillyHack] 以编程方式填充树控制器
与这个琐碎的内容显示相同的行为:
- (NSMutableArray *) sillyHack
{
NSMutableArray *nodeArray = [NSMutableArray array];
NodeData *scaleTypeListNode = [[NodeData alloc] initWithName:@"123"];
NSTreeNode *scaleTypeListTreeNode = [NSTreeNode treeNodeWithRepresentedObject:scaleTypeListNode];
[scaleTypeListNode release];
[nodeArray addObject:scaleTypeListTreeNode];
return nodeArray;
}
任何帮助表示赞赏。
【问题讨论】:
标签: objective-c cocoa cocoa-bindings