Итак, я признаю, что я полный нуб в какао, поэтому я предлагаю нубский вопрос. Я, вероятно, просто где-то упускаю из виду очевидное, но я просто не могу заставить свою таблицу заполнять данные.
Я следую площадке табличного представления пример, но каждый раз, когда я пытаюсь имитировать базовое окно TableView, первая строка становится высотой количества добавленных строк (по крайней мере, так это выглядит. Вот мой код:
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
NSString *identifier = [tableColumn identifier];
if ([identifier isEqualToString:@"filename"]) {
// We pass us as the owner so we can setup target/actions into this main controller object
NSTableCellView *cellView = [fileBrowserTable makeViewWithIdentifier:identifier owner:self];
// Then setup properties on the cellView based on the column
cellView.textField.stringValue = [fileList filenameAtIndex:row];
cellView.imageView.objectValue = [[NSWorkspace sharedWorkspace] iconForFile:[fileList fullPathAtIndex:row]];
return cellView;
}
else if ([identifier isEqualToString:@"path"]) {
NSTextField *textField = [fileBrowserTable makeViewWithIdentifier:identifier owner:self];
textField.objectValue = [fileList pathAtIndex:row];
return textField;
}
else if ([identifier isEqualToString:@"preview"]) {
NSTextField *textField = [fileBrowserTable makeViewWithIdentifier:identifier owner:self];
textField.objectValue = [fileList previewAtIndex:row];
return textField;
}
return nil;
}
Я думаю, стоит упомянуть, что при использовании ячейки текстового поля старой школы у меня нет проблем с отображением данных (конечно, приведенный выше код в этом случае отличается), поэтому я уверен, что это не проблема с моей структурой данных, которая содержит значения . Я также установил правильный делегат и источник данных
Ячейка, использующая идентификатор «имя файла», использует «ячейку представления изображения и текстовой таблицы», в то время как другие используют только «представление ячейки текстовой таблицы». Ни один из них не работает, поэтому я предполагаю, что что-то не так с тем, как я настроил свой стол. Но при сравнении моей таблицы с таблицей в примере это просто плевок (без идентификаторов имен файлов).
Одна вещь, которую я заметил, что я не могу понять, это то, что пример говорит:
NSTableView имеет две ассоциации идентификатора повторного использования: «MainCell» и «SizeCell» связаны с пером ATBasicTableViewCells.xib.
Я не очень понимаю это утверждение. Однако, как говорится, пример не содержит ATBasicTableViewCells.xib и не имеет с ним никаких ассоциаций (код или ib), которые я могу найти.