Какой элегантный способ рисовать разный цвет текста с атрибутами при выборе в Какао NSTableCellView

У меня есть NSTableCellView в представлении на основе NSTableView, которое отображает текст с атрибутами. Таким образом, некоторые из отображаемых слов - например, красный, синий, жирный, нормальный.

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

Какое решение этой проблемы было бы наиболее элегантным?

Я знаю, что могу просто снова установить текст как обычный текст, а не как текст с атрибутами при выделении и как текст с атрибутами, если он не выбран. Но тогда с жирным и нормальным шрифтом это будет немного сложно.

Есть ли более элегантное решение этой проблемы?


person Georg    schedule 24.10.2014    source источник


Ответы (1)


Я не знаком с NSTableViewDelegate, но в UITableViewDelegate у вас есть:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

найдите альтернативу этому в NSTableViewDelegate и создайте ячейку из indexPath:

UITableViewCell *cell = tableView cellForRowAtIndexPath:indexPath]; 

затем просто измените его фон

cell.backgroundColor = [UIColor redColor];

Надеюсь это поможет!

person Valentin    schedule 24.10.2014
comment
Они работают немного иначе. Я имею в виду, что у меня уже есть решение, в котором моя ячейка запоминает исходную строку атрибутов и изменяет цвет. Мне просто было интересно найти самое элегантное решение этой проблемы ... - person Georg; 26.10.2014
comment
О, и я спрашивал о цвете текста с атрибутированными строками, в которых также есть цвет ... - person Georg; 26.10.2014