bbum правильно, вы не помещаете данные в таблицу, вы предоставляете их, и таблица отображает их. В пятницу я сделал быстрый макет размещения текстового файла, отображаемого построчно, так что, возможно, часть кода поможет некоторым.
Получите табличное представление, связанное с выходом к его источнику данных, тогда вы можете сделать что-то вроде этого:
// Class variable in your table delegate object
NSArray* lineList;
IBOutlet NSTableView* table;
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
{
return [lineList count];
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
return [lineList objectAtIndex:row];
}
// Be sure to use the proper encoding for your text file
// do something like this to load your text file.
- (void) loadData:(NSString*)ourPath
{
NSError* err = nil;
NSString* fullFileText = [NSString stringWithContentsOfFile:ourPath encoding:NSMacOSRomanStringEncoding error:&err];
if (err)
NSLog(@"Err: %@, %d", [err localizedDescription], [err code]);
if (fullFileText)
{
lineList = [[fullFileText componentsSeparatedByString:@"\n"] retain];
[table reloadData];
}
}
В вашем случае вы можете использовать массив словарей, используя разные ключи для обеих версий вашего текста. Таким образом, вы можете иметь две колонки. NSTableColumn сообщит вам, в какой столбец вы будете рисовать, когда вызывается tableView: objectValueForTableColumn:. Другой вариант, который у вас есть, это создание пользовательской ячейки с двумя полями, но это, вероятно, излишне для того, что вы просите.
Обратите внимание, что есть ряд других необязательных делегатских вызовов, которые вы можете добавить для большей гибкости при отображении ваших данных.
Кроме того, для более динамичных сложных задач я обнаружил, что привязки лучше. Они могут сбивать с толку, если вам не удобно с ними, хотя. Для простых таблиц часто так просто идти по этому пути. Удачи!