2014-01-10 5 views
0

Кто может мне помочь? Я хочу, чтобы строка была красной, но всегда всегда красная строка.Как установить цвет одной строки в NSTableView?

-(void)tableView:(NSTableView *)tableView willDisplayCell:(id)cell 
    forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 
{ 
    NSColor *cRed = [NSColor redColor]; 
    NSTextFieldCell* cCell = (NSTextFieldCell*)cell; 
    if ([[tableView selectedRowIndexes] containsIndex:4]) 
     { 
      [cCell setTextColor:cRed]; 
     } 
     else 
     { 
      [cCell setTextColor:[NSColor blackColor]]; 
     } 
} 

ответ

1

Если какой-либо из выбранных строк в таблице, включают 5-й строки (т.е. индекс 4), эта строка в коде:

if ([[tableView selectedRowIndexes] containsIndex:4]) 

хитов и вы видите красный в каждой строке, отображаемого ,

Может быть, если вы измените эту линию:

if(row == 4) 

(где строка является параметр, передаваемый в этот метод)

Вы увидите только один ряд изменен на красный.

Если честно, это не лучшее место для установки цвета строки/ячейки. Я думаю, что было бы лучше установить его в источнике данных просмотра таблицы (например, tableView:objectValueForTableColumn:row:).

+0

Половина успеха Но я хочу, чтобы строка была красной, а не setTextColor, является setBackgroundColor [cCell setBackgroundColor: cRed]; Почему строка не должна быть красной? – Taylee

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