Есть некоторые проблемы с вашим ‑drawRect:
методом. Во-первых, вам не нужно (и не следует) вызывать реализацию super
для ‑drawRect:
, если только для этого нет особой причины. Реализация по умолчанию ‑drawRect:
ничего не делает, поэтому в данном случае это просто потерянное сообщение, но вы должны выйти из привычки.
Во-вторых, при рисовании чего-то, что покрывает весь вид, вы обычно должны игнорировать грязный прямоугольник, который был передан, и рисовать фон, используя [self bounds]
в качестве прямоугольника, переданного NSRectFill()
.
Если вы ссылаетесь на 10.6 SDK или выше, вы можете просто установить свойство backgroundColor
представления вместо того, чтобы рисовать фон самостоятельно. Предыдущие SDK не поддерживают это свойство.