У меня есть NSTableView с двумя столбцами, который я хочу заполнить записями, полученными из файла CSV. Все работает нормально, за исключением того, что заголовок каждой из ячеек таблицы не установлен.
Вот функция, которая вызывается для каждой строки в NSArray
- (void)populateTable:(NSString *)fname :(NSString *)lname {
NSMutableDictionary *value = [[NSMutableDictionary alloc] init];
[value setObject:[NSString stringWithFormat:@"%@", fname] forKey:@"first_name"];
[value setObject:[NSString stringWithFormat:@"%@", lname] forKey:@"last_name"];
[arrayController addObject:value];
[value release];
[fname_list reloadData];
[lname_list reloadData];
}
Значение столбца «фамилия» привязано к контроллеру массива arrangedObjects.last_name, а «имя» и «фамилия» указаны как ключи в разделе Контроллер массива > Контроллер объектов > Ключи. список
Создается нужное количество ячеек таблицы (3 записи в файле CSV = 3 строки в каждом столбце), но заголовок каждой из ячеек не задан (либо «first_name», либо «last_name» в зависимости от столбца) ; заголовок ячеек просто остается «Ячейка представления таблицы»
Изменить:
После использования изменений navinsillu я получаю следующую функцию:
- (void)populateTable:(id)sender :(NSString *)fname :(NSString *)lname {
[arrayController insert:sender];
[[[self arrayController] selection] setValue:fname forKeyPath:@"first_name"];
[[[self arrayController] selection] setValue:lname forKeyPath:@"last_name"];
[fname_list reloadData];
[lname_list reloadData];
}
А у меня в шапке
@property (retain,nonatomic,readwrite) IBOutlet NSArrayController *arrayController;
Но я все равно получаю те же результаты: 3 строки/ячейки в каждом столбце таблицы, все под названием «Ячейка представления таблицы».
Изменить:
После некоторой проверки я заметил, что Model Key Path
под привязкой Value
для столбцов таблицы не имеет записей. Когда я ввожу first_name или last_name, появляется сообщение Завершения не найдены, хотя ключи перечислены в списке Keys
в контроллере массива. К сожалению, я понятия не имею, почему он не находит ключи.
Изменить:
Странный. Я попытался удалить и добавить табличное представление и контроллеры массива, но это не сработало. Однако создание нового проекта и выполнение тех же действий дает ожидаемые результаты.