如何从另一个类重新加载表? - 可可

时间:2012-03-04 05:25:54

标签: cocoa class nstableview

我一直试图这样做一段时间,我有一个tableViewController类和我的AppDelegate类,tableViewController类显然是表的数据源。但我希望在启动时加载表,除了从AppDelegate中的applicationDidFinishLaunching方法中的tableViewController类调用表加载方法之外,我无法想出任何其他方法。但这似乎行不通。什么都没发生,只是一张空白的桌子。

这是tableViewController的加载方法:

-(void)loadTable {
NSString* path = [@"~/" stringByExpandingTildeInPath];
self.list = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
[tableView reloadData];
}

这就是我从AppDelegate中调用它的地方

#import "tableViewController.h"
//other code

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    tableViewController *tableClass = [[tableViewController alloc] init];
    [tableClass loadTable];
}

我仍然无法弄清楚为什么这不起作用。如果这不是正确的方法,请告诉我。

1 个答案:

答案 0 :(得分:1)

试试这个

<强>数据源

创建新的实施&amp;接口继承自NSObject并符合NSTableViewDataSource

Datasource必须实现三种方法:

- (int)numberOfRowsInTableView:(NSTableView *)aTableView;

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;

- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;

您可以在NSTableViewDataSource Protocol Reference

中了解这些方法

<强>的TableView

- (void)awakeFromNib方法集数据源[self setDataSource:datasource];并重新加载表格数据[self reloadData];

我希望它能帮到你!