В моем приложении у меня есть NSTableView с настраиваемой ячейкой заголовка, которая назначается программно.Код для назначения пользовательской ячейки выглядит следующим образом:
-(void)setupTableHeader:(id)table {
NSArray *columns = [table tableColumns];
NSEnumerator *cols = [columns objectEnumerator];
NSTableColumn *col = nil;
TRDarkTableColumnHeaderCell *iHeaderCell;
while (col = [cols nextObject]) {
iHeaderCell = [[TRDarkTableColumnHeaderCell alloc] initTextCell:[[col headerCell] stringValue]];
[col setHeaderCell:iHeaderCell];
[iHeaderCell release];
}
}
Это работает так, как вы ожидаете.Однако, когда размер моего окна изменяется, а NSTableView отображает полосы прокрутки, создается дополнительная ячейка заголовка со значением по умолчанию NSTableHeaderCell.Чтобы попытаться справиться с этим, я попытался настроить уведомление для запуска при изменении размера окна.К сожалению, это не имеет никакого эффекта (моя функция setupTableHeader все еще возвращает 1 столбец для таблицы)
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setupTableHeaders) name:NSWindowDidResizeNotification object:[[NSApp delegate] window]];
Обратите внимание, что мое уведомление вызывает вспомогательную функцию setupTableHeaders, которая вызывает функцию setupTableHeader, упомянутую выше.Вот скриншот, чтобы проиллюстрировать проблему:
альтернативный текст http://img22.imageshack.us/img22/640/headercell.png