NstableView cambiando el color de texto para una fila
-
24-10-2019 - |
Pregunta
Necesito cambiar las siguientes propiedades para mi vista nstable 1 - Cambiar color: color de fila y color de texto Cuando se seleccione 2 - Cambie el color de texto, para cada fila depende de algún parámetro de entrada,
Para cambiar TextColor para cada fila, debo anular el método delegado Willdisplaycell, esto es lo que he hecho, hasta ahora,
-Creación de la tabla ----
pMyTableView = [[[CustomTableView alloc] initWithFrame:clipViewBounds] autorelease];
NSTableColumn* firstColumn = [[[NSTableColumn alloc] initWithIdentifier:@"firstColumn"] autorelease];
[firstColumn setWidth:35];
[pMyTableView addTableColumn:firstColumn];
NSTableColumn* secondColumn = [[[NSTableColumn alloc] initWithIdentifier:@"secondColumn"] autorelease];
[secondColumn setWidth:180];
[pMyTableView addTableColumn:secondColumn];
[pMyTableView setRowHeight:30];
[self SetContactTableDisplayAttribute];
[pMyTableView setDataSource:self];
[scrollView setDocumentView:pOnLineCTView];
[pMyTableView setDelegate:self]
;
--- Otro método de delegado -------------
- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{
if([pColName isEqualToString:@"secondColumn"])
{
// Here there is some logic , to get the proper string that i wanted to display
return @"tempString";
}
}
---- Ahora así es como estoy configurando el color del texto ---
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex {
NSString *colName = [aTableColumn identifier];
if([colName isEqualToString:@"secondColumn"]){
NSTextFieldCell *pCell = aCell;
[pCell setTextColor:[NSColor blueColor]];
}
}
Con el código anterior, va a la excepción en el registro, pude ver la línea: [nscell setTextColor:]: el selector no reconocido enviado a la instancia parece en algún lugar que necesito establecer la celda de campo de texto, pero cómo y dónde no tengo idea , amablemente ayúdame,
Otra cosa es que inicialmente no necesito ningún fondo para la celda, pero una vez que la celda se selecciona, también podría necesitar cambiar el fondo o puede decir que resaltar el color, ¿puedo obtener lo mismo en Willdisplaycell también?
Solución
Ha pasado un tiempo desde que hice esto, pero siempre me refiero a esta publicación de blog de Corbin Dunn cuando necesito hacerlo: Cocoa: Método de Delegate de Willdisplaycell de NstableView, [nscell setTextColor] y "listas de origen"
Por cierto, Corbin trabaja en Apple y de lo que entiendo es responsable de NstableView. Cuando bloguea sobre cualquier cacao, siempre me aseguro de marcarlo.