我想知道一个如何实施,如一个的Xcode 3的概略图不同的细胞(和数据类型)NSTableView的是使用用于生成配置:实施NSOutlineView /每
alt text http://img812.imageshack.us/img812/9467/xcodeoutlineview.png
当使用具有绑定的NSOutlineView/NSTableView和NSTreeController/NSArrayController,出于显而易见的原因,视图的列获得分配给的绑定,而不是单个单元。 如果一列中的每一行都使用同一个单元格,那么它就是小菜一碟。但是,如果每行(可能)使用自己的单元格类型(并且可能包含它自己的绑定集合),那么情况会变得很怪异。
查看屏幕截图可以清楚地看到,textfield单元格只需要一个“值”的绑定。而弹出按钮单元至少需要一个“内容”,一为“contentValues”和最后但并非最不重要一个“的selectedIndex/selectedObject/了selectedValue”结合。并且复选框单元需要“值”和(可能)一个用于“标题”的绑定。
如何以尽可能干净的(尽可能少的)代码实现这一点?
(或者像有人可能会问:如何将苹果已经做到了?)
...
这里就是我试过自己至今:
我提供适当的(复制)细胞通过[outlineView:dataCellForTableColumn:item:]并将它们绑定到各个数据模型(来自[itemrepresentObject])。 我知道在大纲视图中显示的数据的确切数量(< 500行),因此每行有一个单元不应该是太多的内存问题,不是? 我得到数据通过绑定(yay!)正确显示但我无法更改它们的任何值。 O_o 显然,值更改根本不会传递给数据模型。有没有比简单的[checkboxCell bind:@“value”toObject:rowModel withKeyPath:@“value”options:nil]? (因为这似乎足够为越来越值,而不是设置他们相应。)
我找不到关于这个主题的信息。很多关于每列使用自定义单元格的信息和提示,但没有在“每行”基础上使用它们的信息和提示。 :(
这将使一些可可教程的伟大的东西,不是吗?;)
还有NSDictionaryController。不知道它会让你走多远,但看一看。 – 2010-08-01 21:05:12
@Mike它不是控制器的问题,而是处理其单元格的表视图之一。但是,无论如何感谢:) – Regexident 2010-08-02 00:25:31
差不多5年后,这是我能找到的关于在具有不同单元格的表格上将数据源绑定到数据源的唯一信息,“这对于Cocoa教程来说会是一些不错的东西,不是吗?” ,是的! – rraallvv 2015-03-12 04:05:42