viewForTableColumn未运行(但objectValueForTableColumn是)

时间:2012-09-23 10:30:34

标签: objective-c xcode interface-builder nstableview

在尝试创建基于视图的表时,它不断调用 objectValueForTableColumn 函数而不是 viewForTableColumn

我在其设置中将表格视图设置为“基于视图”。但我仍然不能让它调用正确的功能。我看过苹果实例(tableviewplayground)的实现,在某些方面甚至复制粘贴了IB和函数,仍然没有进展。

相关代码:

// Should run
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 
{    
    return nil;
}

// Gets run
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
    return nil;
}

两张照片,不确定它们有多大帮助但仍然如此。 http://imgur.com/a/ix34Q

1 个答案:

答案 0 :(得分:16)

要检查的一些事项:

  • 您的NSTableView是否已将delegate设置为该类 实现NSTableViewDelegate协议? (我问因为 tableView:viewForTableColumn:row:是委托方法,而 tableView:objectValueForTableColumn:row:是一种数据源方法。)

  • IB中是否有任何绑定? (你提到你了 从现有项目中复制了nib。)主要检查绑定 到NSTableView内容绑定和提供的视图 子视图(通常是文本字段。)

  • 您是否实施了numberOfRowsInTableView:方法 NSTableViewDataSource协议并返回非零值 整数?

最后,您可以查看文档中“以编程方式填充基于视图的表视图”的表视图编程指南章节。