在尝试创建基于视图的表时,它不断调用 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
答案 0 :(得分:16)
要检查的一些事项:
您的NSTableView
是否已将delegate
设置为该类
实现NSTableViewDelegate
协议? (我问因为
tableView:viewForTableColumn:row:
是委托方法,而
tableView:objectValueForTableColumn:row:
是一种数据源方法。)
IB中是否有任何绑定? (你提到你了
从现有项目中复制了nib。)主要检查绑定
到NSTableView
内容绑定和提供的视图
子视图(通常是文本字段。)
您是否实施了numberOfRowsInTableView:
方法
NSTableViewDataSource
协议并返回非零值
整数?
最后,您可以查看文档中“以编程方式填充基于视图的表视图”的表视图编程指南章节。