删除nstableview中包含内容的列

时间:2013-01-30 21:22:21

标签: cocoa nstableview

我有一个包含一个textboxcolumn和7个checkbox列的tableview。 这个表最终将填充数据,稍后我必须删除中间某处的一列。与表关联的数组会发生什么?我应该如何处理这个?你会怎么做?因为我是初学者,请在答案中说清楚!

1 个答案:

答案 0 :(得分:3)

您是否学会了如何向表格视图提供数据?我建议你在尝试解决这个问题之前先做好准备。

有两种方法可以将数据传递到表视图:表视图数据源和Cocoa绑定。

如果您使用数据源,则需要编写-tableView:objectValueForTableColumn:row:,以便在删除列之前或之后它可以正常工作。一种方法是将该代码基于列的标识符而不是其索引。标识符是您在笔尖中的列上设置的值(查找标识符)。这与您可以用来向重新排序的列提供正确数据的技术相同。

NSString *identifier = [column identifier];
if ([identifier isEqualToString:@"firstField"]) {
    return ...
} else if ([identifier isEqualToString:@"secondField"]) {
    return ...
}

如果您使用Cocoa Bindings,您只需删除一列,其他列将继续有效。

如果您正在使用数组或数组控制器,则在删除列时,数据都不会自动发生在阵列上。