Обработка пользовательского стиля выбора в представлении на основе NSTableView

Как мне нарисовать свой собственный стиль выбора для представления на основе NSTableView? Я попытался поместить BOOL var в свой подкласс NSTableCellView и установить для него значение YES, если по нему щелкнуть, и тогда я смогу успешно нарисовать свой пользовательский выбор. Но как изменить эту переменную BOOL на NO при нажатии на другое представление? Спасибо за любую помощь.

РЕДАКТИРОВАТЬ: После прочтения документов NSTableView похоже, что мне нужно создать подкласс NSTableRowView, чтобы переопределить рисунок выбора, но что мне делать с моим подклассом NSTableRowView? Как заставить стол использовать его?


person edc1591    schedule 31.10.2011    source источник


Ответы (2)


Хорошо, я понял это. Вам просто нужно создать подкласс NSTableRowView. Он имеет методы для рисования фона для выбранных и невыбранных строк. Чтобы табличное представление использовало ваш подкласс, просто реализуйте метод делегата табличного представления tableView:rowViewForRow: и верните экземпляр вашего подкласса.

person edc1591    schedule 31.10.2011
comment
Как я могу изменить цвет метки и значок в представлении ячейки? - person 6 1; 17.08.2012

Чтобы было понятно, я думаю, мы должны привести код метода делегата:

- (NSTableRowView *)tableView:(NSTableView *)tableView rowViewForRow:(NSInteger)row
{
   MyNSTableRowView *rowView = [[MyNSTableRowView alloc]init];
   return rowView;
}
person fredzouille    schedule 16.07.2014