【发布时间】:2012-05-09 01:38:34
【问题描述】:
是否可以为基于视图的NSTableView 的NSTableCellView 提供单独的 XIB 文件?也许在NSViewController 的帮助下?
【问题讨论】:
标签: cocoa nstableview nsviewcontroller
是否可以为基于视图的NSTableView 的NSTableCellView 提供单独的 XIB 文件?也许在NSViewController 的帮助下?
【问题讨论】:
标签: cocoa nstableview nsviewcontroller
是的,这似乎是可能的。
来自 Apple 的文档:
为了发挥作用,以编程方式实现的基于视图的表必须实现以下功能:
...
由 NSTableViewDelegate 协议定义的 - (NSView *)tableView:viewForTableColumn:row: 方法。此方法既为表格提供视图以显示为特定列和行的单元格,又为该单元格填充适当的数据。
这样,您可以拥有 NSView 类(或任何子类)的对象,并在正确填充数据后将其返回。你从哪里得到这个对象,并不感兴趣。据我所知,可以执行以下操作,例如:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Assume you have a XIB called View.xib
[NSBundle loadNibNamed:@"View" owner:self];
// And you have an IBOutlet to your NSTableView (that's view based) called tView
[tView reloadData];
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return 20;
}
- (NSView *)tableView:(NSTableView *)tableView
viewForTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row {
// Assume your class has an IBOutlet called contentOfTableView,
// your class is File's Owner of the View.xib and you connected the outlet.
return contentOfTableView;
}
希望它有效。我只是把它放在一起,心里有个粗略的想法。祝你好运!
【讨论】: