我一直试图这样做一段时间,我有一个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];
}
我仍然无法弄清楚为什么这不起作用。如果这不是正确的方法,请告诉我。
答案 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];
我希望它能帮到你!