viewForTableColumn未运行(但objectValueForTableColumn是)

Jon*_*ang 6 xcode objective-c 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;
}
Run Code Online (Sandbox Code Playgroud)

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

Flu*_*imp 16

要检查的一些事项:

  • 您是否将NSTableViewdelegate设置为实现NSTableViewDelegate协议的类?(我问因为 tableView:viewForTableColumn:row:是一个委托方法,而它 tableView:objectValueForTableColumn:row:是一个数据源方法.)

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

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

最后,您可以查看文档中的"以编程方式填充基于视图的表视图"的" 表视图编程指南"一章.

  • 事实上它应该作为代表联系起来.非常感谢! (2认同)