来自XIB的基于视图的NSTableView视图?

时间:2012-05-09 01:38:34

标签: cocoa nstableview nsviewcontroller

是否可以为基于视图NSTableCellView的{​​{1}}创建单独的XIB文件?也许借助于NSTableView

1 个答案:

答案 0 :(得分:2)

是的,似乎有可能。

来自Apple的文档:

  

为了运行,以编程方式实现的基于视图的表必须实现以下内容:

     

...

     

- (NSView *)tableView:viewForTableColumn:row:由NSTableViewDelegate协议定义的方法。此方法都为表提供了视图,以显示为特定列和行的单元格,并使用适当的数据填充该单元格。

这样,您可以拥有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;

}

希望它有效。我只是把它放在一起,心中有一个粗略的想法。祝你好运!