Как нарисовать полупрозрачный NSTableRowView?
Я хочу настроить рисование фона строки плавающей группы и не могу этого сделать. По сути, я хочу частично прозрачный фон (который всегда остается одинаковым при прокрутке или нет), но что-то меняет внешний вид моего подкласса NSTableRowView
когда табличное представление не прокручивается (хотя при прокрутке оно выглядит как задумано). Вот код и изображение, объясняющее проблему.
- (void)drawBackgroundInRect:(NSRect)dirtyRect
{
[[NSColor colorWithCalibratedWhite:1.0 alpha:0.5] set];
[[NSBezierPath bezierPathWithRect:dirtyRect] fill];
}
Для представления ячеек таблицы я пытался использовать NSTableCellView, NSView и простой NSTextField (это тот, который вы видите на изображении), но результат всегда одинаков.
2 ответа
Я смог исправить это, включив слой Core Animation в представлении ячейки заголовка и в виде таблицы.
Если вы не делаете ничего, кроме заливки фона строки цветом, вам следует установить backgroundColor
собственностью NSTableRowView
вместо переопределения -drawBackgroundInRect:
,
Если вам нужно это переопределение для дальнейшей настройки, я заметил, что вы забыли позвонить [super drawBackgroundInRect:dirtyRect]
в вашей реализации, которая, вероятно, отвечает за поведение, которое вы видите.