У меня проблемы с колонками в NSTableview. Я хочу добавить элемент в определенный столбец в экземпляре NSTableView. (Обратите внимание, что данные является указателем на экземпляр NSMutableArray, который является собственностью AppDelegate, который является DataSource)Добавление объекта в столбец в NSTableView на основе ячейки?
-(IBAction)addTask:(id)sender
{
[self.data addObject:@""];
[self tableView:_tableView setObjectValue:@"Hello World" forTableColumn: self.column row:0];
[self.tableView reloadData];
}
Учебник Я прошел через показал мне, как редактировать один столбец NSTableView. Однако использование той же самой реализации методов NSTableViewDataSource приводит к тому, что tableView для заполнения обоих столбцов вызывает . Соответствующая реализация из учебника:
-(void)tableView:(NSTableView *)tableView
setObjectValue:(id)object
forTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row
{
[self.data replaceObjectAtIndex:row withObject:object];
}
я рассуждаю часть вопроса является то, что описанный выше метод ничего с параметром TableColumn не делать, но я все еще учусь и не имеют ни малейшего представления о том, как действовать , (Особенно сложно найти помощь, потому что многие современные учебные пособия связаны с NSTableViews на основе представлений, и я знаю, что это лучшая практика, я не хочу убегать от этого.) Надеюсь, мои объяснения были достаточно ясными, и любая помощь будем очень благодарны.
Хорошо, так что я думаю, я получаю это. Экземпляр NSTableView вызывает tableView: objectValueForTableColumn: row: один раз для каждого NSTableColumn в таблицеView. Поэтому, если идентификатор столбца не соответствует ни одному ключу, он возвращает значение null, и ничего не происходит. В результате только таблицыColumns, идентификатор которых соответствует ключу для значения, будут заполняться этими значениями! – PopKernel