Каждый раз, когда элементы управления должны реагировать оптически, они снова рисуют его вид.
Если вы действительно хотите решить эту проблему подобным образом, вы можете создать для каждого элемента управления подкласс и добавить код, подобный следующему:
-(void)drawRect:(NSRect)rect {
if (!self.blocked) {
[super drawRect:rect];
}
}
Свойство "заблокировано" - это логическое значение, для которого необходимо установить значение ДА или НЕТ, если вы хотите его заблокировать.
Примечание. Чтобы полностью скрыть его, подкласс управления должен быть заблокирован перед тем, как он впервые отрисовывает себя.