6

抱歉,我知道这是一个有点复杂的问题。

当我想在屏幕上创建一个具有固定列数的 NSTableview 对象时,生活很容易。我只是对每一列进行数据绑定,然后简单地读取/写入该模型(根据 MVC)。

但是当我需要一个具有动态列号的表时(我的意思是允许用户添加/删除列),生活变得不友好。当我使用了 2 种不同的方法时:首先,更容易,但最糟糕的方法是我可以制作一个足够大的表格,这样用户就永远无法填满它!但我知道记忆永远不会感激!

在第二种方法中,我可以创建一个 NSTableColumn 数组,并为每一列分配一个编号标识符,如下所示:

NSTableColumn * column[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 for "dataTable" object. 或其他方法?任何答案将不胜感激

4

0 回答 0