抱歉,我知道这是一个有点复杂的问题。
当我想在具有固定列数的屏幕上制作NSTableview对象时,生活很容易。我只是对每个列进行数据绑定,只是读取/写入该模型(根据MVC)。
但是当我需要一个具有动态列号的表时,生活变得不友善(我的意思是允许用户添加/删除列)。 当我使用两种不同的方法时:在第一种也是更简单但最糟糕的方法中,我可以制作足够大的表格,这样用户就永远无法填满它!但我知道记忆永远不会那么欣赏!!
在第二种方法中,我可以创建一个NSTableColumn数组,并为每列分配编号标识符,如下所示:
NSTableColumn *列[iColumn]; // NSInteger iColumn定义为 用户
for( int i=0;i< iColumn;i++){ column[i] = [[NSTableColumn alloc] initWithIdentifier:[ NSString stringWithFormat:@"%i" ,i] ]; [column[i] setWidth:100]; [tableView addTableColumn:column[i]]; }
这很好用,但是有一些烦人的限制。例如使用“数据绑定”并使用一些拖放操作比处理编号为1,2,3的列的表要容易得多,...以编程方式。
我认为必须有一些更简单的方法来使用UI Builder而不是编写代码。或许可以为整个TableView而不是为每个单独的列绑定数据(类似于Visual中可用的内容) Studio C ++ / Clr用于“dataTable”对象。还是另一种方法? 任何答案都将受到赞赏