Как перезагрузить таблицу из другого класса? - какао - PullRequest
1 голос
/ 04 марта 2012

Я пытался сделать это некоторое время, у меня есть класс tableViewController и мой класс AppDelegate, а класс tableViewController, очевидно, является источником данных для таблицы.Но я хочу, чтобы таблица загружалась при запуске, и я не могу придумать другого способа сделать это, кроме вызова метода загрузки таблицы из класса tableViewController в методе applicationDidFinishLaunching в AppDelegate.Но это, похоже, не работает.Ничего не происходит, просто пустая таблица.

Это метод загрузки из 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 Ответ

1 голос
/ 04 марта 2012

Попробуйте вместо этого

Datasource

Создание новой реализации и интерфейса, который наследуется от 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

TableView

В - (void)awakeFromNib установить метод источника данных [self setDataSource:datasource]; и перезагрузить данные таблицы [self reloadData];

Надеюсь, это вам поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...