2011-11-24 59 views
4

我遇到了问题。 [我唯一能找到的例子是在WWDC 2011演示文稿(“Xcode 4中最大化生产力”)中显示的,但没有可用的源代码(它是一个名为Birdathon的应用程序)。别的我想出一切都是为iOS和不跨翻译] 可可 - 基于视图的NSTableView,在多个表中使用一个单元格

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

我的问题是我想在多个不同的表中使用相同的单元格。我不需要每次重新创建相同的布局,我觉得我应该可以在IB中只画一次NSTableCellView。 [ - 事实上,我所提到的Birdathon例子似乎证实了这一NSTableCellView在它自己的NIB被解雇了。]

我发现适用于iOS的答案在很多地方,在这里例如:How do you load custom UITableViewCells from Xib files?

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

感谢,

大卫

+0

确保他们NSTableView的,而不是UITableView的标识? – Dimme

+0

这就是我想说的,可能不是很清楚 - 我想用NSTableView在Cocoa for Mac中执行此操作,但我可以找到的唯一示例是iOS(Cocoa Touch),因此使用UITableView。 链接到UITableView问题的原因是因为该解决方案是我需要的,但是转换成NSTableView。 –

+0

对不起,我很愚蠢。 Birdathon示例*是* UITableView,这不是我想要的。那么明显的下一个问题是:是否可以用NSTableView/Cocoa来做我想做的事情? –

回答

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

只需更换 “自动” 您所使用

+0

Alex,谢谢你的回应。不过,我已经像你的例子那样工作了,Table View Cell(如你的屏幕截图)已经与IB中的表/部分表相关联。我想要做的是将该单元格移动到任何一个单独的表格之外,以便可以在多个表格中使用相同的单元格布局(由多个不同的控件组成),而不必每次重新布局它。我曾尝试使用相同的代码,但没有出现(大概是因为它不知道在哪里看)。我开始假设它可能根本不可能...... –

+0

您可能需要子类nsview。它真的不难。否则,如果你必须使用ib,你可以为它创建一个单独的nib,就像在你链接的例子中使用init和nib名称 –

+0

好的,谢谢,我将不得不有更好的了解子类NSView。我确实有一个测试,它是一个单独的笔尖,但没有工作 - 但我不认为我是继承的(或者如果我是因为我只是从某处复制了一些代码,而没有明白它)。这需要我花几天时间来尝试,但是如果/当我找到解决方案时,我会反馈我的态度。干杯。 –

相关问题