Источники данных и 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];
}