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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top