为什么我的基于NSTableView的单元格调用viewForTableColumn?

时间:2012-04-19 19:14:26

标签: objective-c xcode cocoa nstableview

我有一个视图控制器,它是2个表的委托,基于视图的表和基于单元格的表。当基于单元格的表应该调用viewForTableColumn时,它会调用objectValueForTableColumn。我确信它是界面构建器中基于单元格的表。

2 个答案:

答案 0 :(得分:5)

如果NSTableView的代表实施方法tableView:viewForTableColumn:row:,则NSTableView会自动切换为基于视图。 你必须为2个表格视图制作不同的代表

答案 1 :(得分:1)

基于视图的表视图和基于单元的表视图不混合,您可以有两个不同的委托,也可以将单元格基表转换为基于视图的表,然后在tableView:viewForTableColumn:row:中使用以下代码使它看起来像一个基于单元格的表:

NSTableCellView *cell = [tableView makeViewWithIdentifier:@"textFieldCell" owner:self];

其中textFieldCell是单元格的标识符。然后使用以下代码设置要在单元格中显示的字符串:

[[cell textField] setStringValue:desiredString];

在方法结束时返回变量单元格