Después de cambiar NSOutlineView basado en la celda a basado en la vista, no muestra los iconos y títulos del árbol del sistema de archivos. Aquí mi código:"Lista de fuentes" basada en la vista NSOutlineView no muestra los iconos y títulos de los elementos
- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item {
if ([[tableColumn identifier] isEqualToString:@"name"])
return [(ImageAndTextCell *)cell setTextFieldImage:[item icon]];
}
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
return [((ConstructorFSEntity *)item) title];
}
- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item {
if ([item isKindOfClass:[FSEntity class]]) {
return [outlineView makeViewWithIdentifier:@"HeaderCell" owner:self];
} else {
return [outlineView makeViewWithIdentifier:@"DataCell" owner:self];
}
}
Y tengo una pregunta más. Cómo colocar los elementos enumerados (matriz del elemento del sistema de archivos) en la celda "DataCell" y "HeaderCell" declarar como carpeta principal (grupo) y asignarle un título (por ejemplo, @ "Carpeta raíz") y la ruta de acceso la clase. Porque, ahora el método anterior basado en la vista, muestra el elemento enumerado solo en "HeaderCell" o "DataCell" y cuando intento asignarle un valor a "HeaderCell", la aplicación falla. ¿Me puede ayudar con esto?
'NSTabelCellView' proporcionan ya una propiedad' imageView' por lo tanto, puede establecer la imagen simplemente configurando 'cellView.imageView.objectValue = [item icon]'. No necesita la clase ImageAndTextCell del ejemplo de SourceView. – Stephan