AppDelegate
тоящее время я пытаюсь использовать новый NSOutlineView на основе представления в моем приложении Какао. Поскольку я не использую привязки, я реализовал все необходимые методы делегата и источника данных в своем контроллере.
В конструкторе интерфейса я добавил NSOutlineView с подсветкой, установленной наSOURCELIST и режим содержимого установлен наПросмотр на основе, Таким образом, было предоставлено два представления ячейки таблицы по умолчанию (одна ячейка заголовка сHeaderCell установить в качестве идентификатора и одну ячейку данных сDataCell установить в качестве идентификатора)
Вот как это выглядит в конструкторе интерфейсов, представления ячеек заголовка правильно показывают серо-синийтекстовое поле в то время как представления ячейки данных имеют представление изображения итекстовое поле с правильными настройками цвета и шрифта
Чтобы предоставить представления, я использую следующий код для возврата DataCell-представления или HeaderCell-представления и соответственно устанавливаю textField ячейки на основе соответствующего идентификатора, установленного в конструкторе интерфейса.
- (NSView *)outlineView:(NSOutlineView *)outlineView
viewForTableColumn:(NSTableColumn *)tableColumn
item:(id)item {
NSTableCellView *result = nil;
if ([item isKindOfClass:[NSMutableDictionary class]]) {
result = [outlineView makeViewWithIdentifier:@"HeaderCell" owner:self];
id parentObject = [outlineView parentForItem:item] ? [outlineView parentForItem:item] : groupedRoster;
[[result textField] setStringValue:[[parentObject allKeys] objectAtIndex:0]];
} else {
result = [outlineView makeViewWithIdentifier:@"DataCell" owner:self];
[item nickname] ? [[result textField] setStringValue:[item nickname]] : [[result textField] setStringValue:[[item jid] bare]];
}
return result;
}
Запуск всего выглядит следующим образом.
Кто-нибудь может дать мне подсказки, почему ячейка заголовка не выделена жирным шрифтом и не имеет правильного цвета?