У меня есть NSTableView, который отображает массив объектов, которые я имею. Для каждого из этих объектов (строки) я хотел бы изменить цвет текста, отображенного в зависимости от результатов функции, я работаю на каждом объекте;
Так, например, весь объект в таблице, которые существуют в другом списке (или некоторое другое требование) я хочу отобразить их в зеленом тексте и объектах, которые не существуют дисплей красного цвета.
Как я пошел бы о выполнении этого?
Предполагая, что в вашей таблице есть NSTextFieldCell (для других ячеек установка цвета текста может отличаться), вы можете достичь этого, реализовав метод делегата NSTableView.
Во-первых, вы должны определить делегата для NSTableView, либо в Interface Builder, либо в вашем коде. Это может быть, например, контроллер вашего приложения.
Затем просто реализуйте следующий метод:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
NSTextFieldCell *cell = aCell;
if (...) {
[cell setTextColor:[NSColor greenColor]];
} else if (...) {
[cell setTextColor:[NSColor redColor]];
} else {
[cell setTextColor:[NSColor blackColor]];
}
}
Каждый раз, когда NSTableView будет рисовать ячейку, у вас есть возможность изменить ее до того, как она будет нарисована.
Посмотрите страницу документации NSTableViewDelegate для более подробной информации.