2011-01-25 3 views
5

Мне нужно изменить следующие свойства для моего NSTable View 1 - Изменить цвет: Цвет строки и цвет текста при его выборе 2 - Измените цвет текста, для каждой строки это зависит от некоторый параметр ввода,NSTableView Изменение цвета текста для строки

для изменения TextColor для каждой строки, я должен переопределить метод делегата willDisplayCell, это то, что я сделал, до сих пор,

- Создание таблицы ----

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] 

; 

- - Другой метод делегата -------------

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

    } 

} 

---- Теперь это как я устанавливаю цвет текста ---

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

} 

С приведенный выше код, его переход к исключению в журнале, я мог видеть строку - [NSCell setTextColor:]: непризнанный селектор, отправленный в экземпляр Похоже, где-то мне нужно установить текст Поле ячейки, но как и где у меня нет идея, любезно мне помогите,

Другой Дело в том, что сначала мне не нужен какой-либо фон для ячейки, но один раз, когда выбрана ячейка, тогда мне также может понадобиться изменить фон или вы можете сказать выделить цвет, могу ли я получить то же самое в WillDIsplayCell тоже

ответ

7

Это прошло некоторое время с тех пор, как я это сделал, но я всегда ссылаюсь на это сообщение в блоге Корбином Данном, когда мне это нужно: Cocoa: willDisplayCell delegate method of NSTableView, [NSCell setTextColor], and “source lists”

Кстати, Корбин работает в Apple и, насколько я понимаю, отвечает за NSTableView. Когда он блогов о чем-то Cocoa, я всегда буду отмечать его.

+0

Спасибо, позвольте мне попробовать :) – Amitg2k12

+0

Спасибо, он работает как Magic – Amitg2k12

+0

Рад помочь. – sosborn

Смежные вопросы