Cocoa - 基于视图的NSTableView,在多个表中使用一个单元格

时间:2011-11-24 20:20:04

标签: xcode cocoa nstableview nstableviewcell

我遇到了问题。 [我在其中一个WWDC 2011演示文稿(“Xcode 4中的最大化生产力”)中展示了我能找到的唯一示例,但没有可用的源代码(它是一个名为Birdathon的应用程序)。我想出的其他所有内容都适用于iOS,并且不会翻译。]

基本上,我有一些基于视图的NSTableViews,目前在我的NSTableCellView中直接在列中布置图像/文本字段。我有一个NSTableCellView的子类,它为我提供了为我在该单元格中使用的每个文本字段赋值的插座。 DataSource和Delegate已实现并正常工作 - 使用我的自定义NSTableViewCell的TableView工作正常。

我的问题是我想在多个不同的表中使用相同的单元格。而不是每次都必须重新创建相同的布局,我觉得我应该能够在IB中只绘制一次NSTableCellView。 [ - 事实上,我提到的Birdathon示例似乎显示NSTableCellView在其自己的NIB中布局。]

我在很多地方找到了iOS的答案,例如:How do you load custom UITableViewCells from Xib files?

任何人都可以帮我修改Mac上的Cocoa吗?

谢谢,

大卫

1 个答案:

答案 0 :(得分:1)

喜欢这个!

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView {
    return count;
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { 
    NSView *customView = [tableView makeViewWithIdentifier:@"customview"
                                                     owner:self];
    …… // set properties
    return customView;
}

在界面构建器中,将自定义单元格视图的标识符设置为“customview”,它将自动创建!例如:

set identifier in xcode

只需将“自动”替换为您正在使用的标识符