如何在Cocoa/Xcode中创建具有动态列数和绑定的NSTableView?

Aug*_*Aug 5 xcode cocoa dynamic nstableview

对不起,我知道这是一个有点复杂的问题.

当我想在具有固定列数的屏幕上制作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]];
    }
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但是有一些令人烦恼的限制.例如,使用"数据绑定"并使用一些拖放操作比处理编号为1,2,3的列的表格更加容易,编程方式.

我认为必须有一些更简单的方法来使用UI Builder而不是编写代码.也许有可能为整个TableView而不是为每个单独的列绑定数据(类似于Visual Studio C++中可用的内容) Clr用于"dataTable"对象.还是另一种方法?任何答案都会受到赞赏