0

我试图为 Mac OS X 10.6 和 10.7 的 NSTableView 创建自定义单元格

在 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;
}

有人可以检查我所做的是否正确吗?或者也许有人知道。在这种情况下做得如何

4

2 回答 2

1

您可以在 Mac OS X 10.7 中继续使用基于单元的 NSTableView。如果您忽略 10.7 中添加的新功能,它们的工作方式与 10.6 中的相同。使您的表格视图基于完全是可选的。因此,如果您的表格视图在 10.6 中运行良好,那么它在 10.7 中也应该可以正常运行。-tableView:viewForTableColumn:根本不对,也不会工作。把它拿出来,因为它是不必要的。

于 2012-04-23T19:12:55.237 回答
0

为什么不在- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row10.7 中使用?它仍然有效,不是吗?

于 2012-04-23T19:13:57.957 回答