Я создал собственное окно, чтобы переопределить NSWindow. Он отлично работает, за исключением того, что у него есть тень. Я использую [self setHasShadow: NO], чтобы программно установить тень, но она по-прежнему остается. Однако, если я проверяю с помощью [self hasShadow], он возвращает false.Настройка тени окна в какао?
Единственный способ заставить тень уйти, если я отключу тень в Interface Builder. Да, я понимаю, что все в порядке, но мне интересно, почему программные настройки не переопределяют настройку Interface Builder, даже если это делают другие программные настройки.
Мне не разрешено публиковать какие-либо коды, поэтому, пожалуйста, не просите меня об этом.
Нужно ли что-либо делать в дополнение к [self setHasShadow: NO], чтобы программно настроить тень окна?
EDIT: Вызов [self setHasShadow:NO]
из awakeFromNib
делает тень уходят. Однако я хочу, чтобы удалить тень непосредственно из конструктора не awakeFromNib
Mac OSX Snow Leopard, Xcode 3.2.6
Что происходит, если вы поставите '[само setHasShadow: NO]' в ' awakeFromNib', а не в вашей инициализации? –
@ sudorm-rf Я попытался положить [self setHasShadow: NO] в awakeFromNib, и это заставило тень уйти. Но я предпочел бы, если бы я мог сделать это прямо в конструкторе. Что могло бы изменить настройку между временем вызова конструктора и вызовом awakeFromNib? – fdh
Ну, проблема в том, что IB настраивает ваше окно * после того, как вызывается инициализация. 'awakeFromNib' вызывается после того, как IB инициализирует ваше представление. Таким образом, (большинство) настроек в IB будет иметь приоритет над теми, которые есть в вашем инициализаторе. –