2011-01-25 21 views
5

Potrzebuję zmienić następujące właściwości dla mojego widoku NSTable 1 - Zmień kolor: Kolor wiersza i Kolor tekstu, gdy jest wybrany 2 - Zmień kolor tekstu, dla każdego wiersza zależy od jakiś parametr wejściowy,NSTableView Zmiana koloru tekstu dla wiersza

do zmiany textColor dla każdego wiersza, i powinny przesłonić metodę delegat willDisplayCell, to co mam zrobić, aż do teraz,

- Tworzenie tabeli ----

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] 

; 

- - Inny delegat Metoda -------------

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

    } 

} 

---- Teraz jest to jak mam ustawienie koloru tekstu ---

- (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]]; 
    } 

} 

Z powyższy kod, jego wyjście do wyjątku w dzienniku, mogłem zobaczyć linię - [NSCell setTextColor:]: nierozpoznany selektor wysłany do instancji Wygląda jak gdzieś muszę ustawić komórkę pola tekstowego, ale jak i gdzie nie mam pojęcia , uprzejmie pomóż mi,

Kolejna rzecz s, Początkowo nie potrzebuję żadnego tła dla komórki, ale raz, gdy komórka jest wybrana, wtedy też muszę zmienić tło lub możesz powiedzieć kolor podświetlenia, czy mogę uzyskać to samo w WillDIsplayCell również

Odpowiedz

7

od czasu, gdy to zrobiłem, ale zawsze odwołuję się do tego posta na blogu Corbina Dunna, kiedy muszę to zrobić: Cocoa: willDisplayCell delegate method of NSTableView, [NSCell setTextColor], and “source lists”

Nawiasem mówiąc, Corbin pracuje w Apple i z tego co rozumiem jest odpowiedzialny za NSTableView. Kiedy bloguje o wszystkim, kakao, zawsze muszę go dodać do zakładek.

+0

Dzięki, pozwól mi spróbować :) – Amitg2k12

+0

Dzięki, działa jak Magic – Amitg2k12

+0

Cieszę się, że pomogłem. – sosborn

Powiązane problemy