Objective c NSTableVIew自定义单元格

Objective c NSTableVIew自定义单元格,objective-c,Objective C,我正在尝试为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]; re

我正在尝试为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上运行

我想我可以做这样的事情,但是我只有MacOSX10.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;
}

有人能检查一下我所做的是否正确吗?也许有人知道。在这种情况下如何正确

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

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

很抱歉,我知道你可能不是以英语为母语的人,但我发现很难理解你到底想要什么。无论如何,我都会尝试回答。我无法使用NSTableViewCell。程序没有运行你不会说我,如果我对这个函数viewForTableColumn进行注释,dataCellForTableColumn方法将在10.7中运行?是的,它将在10.7中调用。您应该忽略10.7中对NSTableView所做的更改。因为你的应用目标是10.6,所以它无论如何都不能使用它们,而且它们在10.7上是100%可选的。这样想:如果10.7中需要它们,那么任何使用NSTableView的现有软件都会在10.7中崩溃,即使它在10.6中工作。显然不是这样。我必须注释-(NSView*)tableView:(NSTableView*)tableView viewForTableColumn:(NSTableColumn*)tableColumn行:(NSInteger)行这个方法?