我尝试使用从菜单项中选择的内容更新表格视图。这是我的AppDelegate类绑定到NSArrayController。
@implementation AppDelegate
- (id) init {
self = [super init];
// An NSMutableArray to hold several Package objects
self.allPackages = [[NSMutableArray alloc] init];
Package *package = [[Package alloc] init];
// Objective-C setters
[package setName:@"Installation Core"];
[package setCreator:@"Messi"];
[self.allPackages insertObject:package atIndex:[self.allPackages count]];
return self;
}
NSArrayController在init时按预期更新NSTableView。现在我有一个菜单项,它调用一个方法来获取NSArrayController中的一些Package对象。
- (IBAction)open:(id)sender{
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
....
// If OK Button was pressed
if([openDlg runModal] == NSOKButton){
NSURL *url = [openDlg URL];
PackageHelper *packageHelper = [[PackageHelper alloc] init];
NSMutableArray *files = [packageHelper getFilesFromDirectory: url];
NSLog(@"Received %li",files.count);
// This is actually listing all the files I need.
}
else {
NSLog(@"Pressed Cancel");
}
}
现在我的问题是如何让这个NSMutableArray文件显示在TableView上?换句话说,Array Controller是否可以从AppDelegate类中的init方法获取数据,并在不同类中获取open方法?
感谢您的时间。