应该是一个简单的问题,但界面中没有任何内容。
除了看到preparedCellAtColumn:row:
之类的东西是否会引发异常外,还有什么可以做的吗?
除preparedCellAtColumn:row:
不会抛出异常外,它只会记录一条消息,并返回一个NSCell对象,因此您无法对其进行测试。
答案 0 :(得分:0)
有趣的是,有几个人说没有必要知道提问者什么时候显然有这种需要。你可能想知道这个有很好的理由;例如如果实现泛型 NSTableView 子类或委托,则必须根据表视图是基于视图还是基于单元来区分其行为。
如果您使用 NSArrayController 和绑定,一种简单的方法是检查 NSTableColumn 绑定,因为基于单元格的 NSTableView 确实有这些以及基于视图的 NSTableView 都没有。所以这个代码片段将起作用:
NSTableColumn *tableColumn = [[myTableView tableColumns] objectAtIndex:0];
NSDictionary *binding = [tableColumn infoForBinding:@"value"];
if (binding) {...} // cell-based table view
else {...} // view-based table view
我没有尝试过,但如果您使用 NSTableViewDataSource ,则可能只是检查数据源是否响应- tableView:setObjectValue:forTableColumn:row:
(基于单元格的表格视图)或不(基于视图的表格视图)。
答案 1 :(得分:-1)
没有必要告诉它,如果使用objectValueForTableColumn它将自动变为基于单元格,而另一方面如果使用viewForTableColumn则它将基于视图。您可以在这两种方法中传递任何类型的视图。