2011-01-25 25 views
5

Necesito cambiar las siguientes propiedades para mi NSTable View 1 - Cambiar color: Color de fila y color de texto cuando se selecciona 2 - Cambiar el color del texto, para cada fila depende de algún parámetro de entrada,NSTableView Cambiar el color del texto de una fila

para cambiar color de texto para cada fila, que debería reemplazar 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] 

; 

- - El otro método del 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 bien, esta es la forma en que yo pongo 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 excepción en el registro, pude ver la línea - [NSCell setTextColor:]: selector no reconocido enviado a la instancia Parece que en algún lugar necesito establecer el texto Celda de campo, pero cómo y dónde no tengo idea , amablemente ayúdeme,

Otra cosa que yo s, Inicialmente no necesito ningún fondo para la celda, pero una vez cuando se selecciona la celda, entonces también podría necesitar cambiar el Fondo o puede resaltar el color, ¿puedo obtener lo mismo en WillDIsplayCell?

Respuesta

7

Tiene Ha pasado un tiempo desde que hice esto pero siempre me refiero a esta publicación de Corbin Dunn cuando necesito hacerlo: Cocoa: willDisplayCell delegate method of NSTableView, [NSCell setTextColor], and “source lists”

Por cierto, Corbin trabaja en Apple y por lo que yo entiendo es responsable de NSTableView. Cuando él bloguea sobre cualquier cosa Cocoa, siempre me aseguro de marcarlo.

+0

Gracias, déjame intentar :) – Amitg2k12

+0

Gracias, funciona como Magic – Amitg2k12

+0

Me alegro de haber ayudado. – sosborn

Cuestiones relacionadas