2011-01-25 18 views
5

Devo modificare le seguenti proprietà per la mia vista NSTable 1 - Cambia colore: Colore riga e Colore testo quando è selezionato 2 - Cambia il colore del testo, per ogni riga dipende alcuni parametri di input,NSTableView Modifica testo Colore per una riga

per cambiare textcolor per ogni riga, dovrei ignorare metodo delegato willDisplayCell, questo è quello che ho fatto, fino ad ora,

- Creazione della tabella ----

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] 

; 

- - Altro delegato Metodo -------------

- (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"; 

    } 

} 

---- Ora, questo è come io pongo il colore del testo ---

- (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 il sopra codice, andando a eccezione nel Log, ho potuto vedere la riga - [NSCell setTextColor:]: selettore non riconosciuto inviato all'istanza Sembra che da qualche parte ho bisogno di impostare il testo Field cell, ma come e dove non ho idea , gentilmente aiutarmi,

Un'altra cosa che ho s, Inizialmente non ho bisogno di alcun background per la cella, ma una volta quando è selezionata la cella, potrebbe anche essere necessario cambiare lo sfondo o si può dire il colore di evidenziazione, posso ottenere lo stesso anche in WillDIsplayCell

risposta

7

Ha è passato un po 'di tempo da quando ho fatto questo, ma mi riferisco sempre a questo post sul blog di Corbin Dunn quando ho bisogno di farlo: Cocoa: willDisplayCell delegate method of NSTableView, [NSCell setTextColor], and “source lists”

A proposito, Corbin lavora con Apple e da quello che capisco è responsabile di NSTableView. Quando legge qualcosa su Cocoa, sono sicuro di segnalarlo.

+0

Grazie, fammi provare :) – Amitg2k12

+0

Grazie, funziona come Magic – Amitg2k12

+0

Felice di aver aiutato. – sosborn

Problemi correlati