在卡布奇诺中构建绑定兼容的大纲视图数据的最佳方法是什么?即一种CPTreeController
我的源代码当前是一个jSON对象(包含对象和数组),我想将它显示在大纲视图中,并且能够更改其参数/获得更改通知。 (一旦加载到CPTreeController中,我不需要将它序列化为jSON,我将直接使用数据源)
然后:
答案 0 :(得分:1)
通过消息来源搜索说没有隐藏的CPTreeController,因此您可以编写自己的CPTreeController实现并将其贡献给社区,也可以为特定模型实现数据源协议,如下所示:
- (int)outlineView:(CPOutlineView)theOutlineView numberOfChildrenOfItem:(id)theItem
{
if (theItem == nil)
theItem = rootNode;
return [[theItem childNodes] count];
}
- (id)outlineView:(CPOutlineView)theOutlineView child:(int)theIndex ofItem:(id)theItem
{
if (theItem == nil)
theItem = rootNode;
return [[theItem childNodes] objectAtIndex:theIndex];
}
- (BOOL)outlineView:(CPOutlineView)theOutlineView isItemExpandable:(id)theItem
{
if (theItem == nil)
theItem = rootNode;
return [[theItem childNodes] count] > 0;
}
- (id)outlineView:(CPOutlineView)anOutlineView objectValueForTableColumn:(CPTableColumn)theColumn byItem:(id)theItem
{
return [[theItem representedObject] valueForKey:"name"];
}