根据菜单项更新NSTableView

时间:2014-08-03 07:50:39

标签: objective-c cocoa

我尝试使用从菜单项中选择的内容更新表格视图。这是我的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方法?

感谢您的时间。

0 个答案:

没有答案