Я делаю NSTableView программным способом, но по какой-то причине, независимо от того, что я делаю, я не могу заставить darn headerView отображаться. Крайне важно, чтобы я делал это программно и не использовал IB, потому что я действительно разрабатываю этот виджет в среде IDE, называемой clozure cl, которая представляет собой идеал lisp, который включает мост cocoa. Первоначально я думал, что эта проблема, возможно, была вызвана моей разработкой, но я просто создал пример в Xcode, используя только объектив C, и кажется, что проблема сохраняется. То, что я делаю, довольно просто:
Я создаю окно в IB и в его методах awkefromnib, которые я создаю и настраиваю табличный вид, вот код:
- (void)awakeFromNib {
mydatasource *data = [[mydatasource alloc] init];
NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"id"];
NSTableView *table = [[NSTableView alloc] initWithFrame: [[self
contentView]frame]];
[table setDataSource:data];
[table addTableColumn:column];
[table addTableColumn:column];
[[self contentView] addSubview:table];
}
Вот код для моего объекта источника данных:
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
{
printf("NUM ROwS");
return 4;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
printf("THE OTHER ONE");
return @"OKAY";
}
С помощью этого кода я получаю окно с двумя столбцами и четырьмя строками, а каждая ячейка отображает строку "OKAY", все это прекрасно и хорошо, за исключением того, что в таблице нет заголовка. Это может иметь смысл, за исключением случаев, когда я смотрю на метод заголовков таблиц, он имеет инициализированный заголовок с фреймом, значения которого имеют смысл. Мне просто интересно, почему я этого не вижу. Есть ли какой-то особый вид магии, который мне нужно сделать, чтобы заголовок отображался? Я не могу найти никаких подсказок в документации. Еще раз настоятельно необходимо, чтобы это было сделано программно, поэтому было бы нецелесообразно предлагать использовать IB, который, как я знаю, будет иметь рабочий заголовок. Большое спасибо.