Objective c NSTableView列中的自定义NSView

Objective c NSTableView列中的自定义NSView,objective-c,cocoa,nstableview,Objective C,Cocoa,Nstableview,我使用的是只包含一列的基于视图的NSTableView。 我有以下代码,它返回一个带有两个NSTEXT字段的NSView: 似乎什么也没发生,即使执行了这段代码。我没有使用列标识符,我只想将自定义视图作为行返回 结果是: 我做错了什么 这个视图将是非常定制和大的,所以我不能依赖苹果的默认单元格视图 谢谢大家! 基于视图与基于单元格不同 不同之处在于将id返回值替换为NSView 更改此项: - (id)outlineView:(NSOutlineView *)outlineView viewFo

我使用的是只包含一列的基于视图的NSTableView。 我有以下代码,它返回一个带有两个NSTEXT字段的NSView:

似乎什么也没发生,即使执行了这段代码。我没有使用列标识符,我只想将自定义视图作为行返回

结果是:

我做错了什么

这个视图将是非常定制和大的,所以我不能依赖苹果的默认单元格视图

谢谢大家!

基于视图与基于单元格不同

不同之处在于将id返回值替换为NSView

更改此项:

- (id)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
为此:

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
这是假设您正在运行10.7,并且您实际上将返回一个NSView。

需要检查的一些事项:

NSTableView是否将其委托设置为 是否实现NSTableViewDelegate协议?我问是因为 tableView:viewForTableColumn:row:是委托方法,而 tableView:objectValueForTableColumn:row:是数据源方法。 IB中是否设置了任何绑定?主要检查绑定 到NSTableView内容绑定和提供的视图的 子视图通常位于文本字段中。 您是否从中实现numberOfRowsInTableView:方法 NSTableViewDataSource协议,它是否返回非零整数?
最后,您可以查看文档中的“表视图编程指南”一章。

Hello!如果使用-NSView*outlineView:NSOutlineView*outlineView viewForTableColumn:NSTableColumn*tableColumn项:iditem而不是-id tableView:NSTableView*tableView objectValueForTableColumn:NSTableColumn*tableColumn行:NSIntegerrow,则不会执行该函数。我忘了在IB或代码中更改某些内容了吗?表视图设置为基于视图。请检查我的其他答案。希望有帮助!
- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item