Источники данных и NSTableView

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

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

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

1 ответ

Решение

Источник данных табличного представления должен соответствовать 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];   
}
Другие вопросы по тегам