我尝试为NSTableView for Mac OS X 10.6和10.7
创建自定义单元格在10.6我正在做
- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
CustomCell *tableCell = [[[CusomCell alloc] init]autorelease];
return tableCell;
}
但是如何在10.7中执行此操作?
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
}
Mac OS X 10.7中的方法返回NSView
,而CustomCell返回NSCell
我无法使用NSTableCellView,因为这会使程序无法在Mac OS X 10.6上运行
我认为我可以做这样的事情,但我只有Mac OS X 10.6,所以我无法测试这个
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSView *view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 299, 75)];
[view addSubview:tableCell.controlView];
return view;
}
有人可以检查我在做什么是正确的吗?或者也许有人知道。在这种情况下如何正确行事
答案 0 :(得分:1)
您可以在Mac OS X 10.7中继续使用基于单元格的NSTableViews。如果忽略10.7中添加的新功能,它们的工作方式与10.6相同。使基于视图的表是完全可选的。因此,如果您的表视图在10.6中运行良好,它也应该在10.7中正常工作。 -tableView:viewForTableColumn:
不是很好,也行不通。把它拿出来,因为它是不必要的。
答案 1 :(得分:0)
为什么不在10.7中使用- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
?它仍然有效吗?