Везде в интернете я могу прочитать, что, чтобы изменить цвет фона NSView вы можете просто переопределить его метод DrawRect так:Действительно ли drawRect меняет цвет фона NSView?
- (void)drawRect:(NSRect)rect
{
[[NSColor yellowColor] set];
NSRectFill(rect);
}
Например here.
Однако в моем случае цвет рисуется поверх представления (я больше не вижу содержимого), что для меня вполне логично. DrawRect должен нарисовать вид, а не только его фон.
Что мне не хватает?
Предполагая, конечно, что существует суперкласс (т. Е. Патрик не подклассифицировал NSView напрямую, а скорее подклассифицировал некоторый другой подкласс NSView). –
Если бы он напрямую подклассифицировал NSView, он бы не заметил проблему исчезновения контента в первую очередь. – omz
DocuMail: «Реализация по умолчанию ничего не делает. Подклассы должны переопределять этот метод, если они выполняют пользовательский чертеж. [...] Если ваш пользовательский вид является прямым подклассом NSView, вам не нужно вызывать супер. Для всех остальных видов, вызовите super в какой-то момент вашей реализации, чтобы родительский класс мог выполнить любой дополнительный чертеж ». – Flori