Источники данных и NSTableView - PullRequest
3 голосов
/ 22 апреля 2010

Я знаю, что источникам таблиц нужен источник данных для хранения данных, которые будут отображаться в виде таблицы. Скажем, я собираюсь сделать мой AppController источником данных для моего табличного представления и что я создаю соединение в конструкторе интерфейсов. Мой вопрос в том, что мои фактические данные будут храниться в массиве, давайте назовем его myArray, когда я устанавливаю источник данных в коде, если я сделаю это

 [tableView setDataSource:myArray]; or this [tableView setDataSource:self];

Я запутался в этом. установка источника данных с ключевым словом «self» установит его на AppController, если я не ошибаюсь.

1 Ответ

7 голосов
/ 22 апреля 2010

Источник данных табличного представления должен соответствовать протоколу NSTableViewDataSource (называемый NSTableDataSource до 10.6).

NSArray не соответствует этому протоколу, поэтому выне может использовать его в качестве источника данных.

Вам необходимо реализовать необходимые методы протокола в своем объекте AppController и назначить объект AppController в качестве источника данных таблицы.

- (void)applicationDidFinishLaunching:(NSNotification*)notification
{
    [tableView setDataSource:self];
}

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
    return [myArray count];
}

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
    return [myArray objectAtIndex:rowIndex];   
}
...