У меня проблема с NSWindow
, и это контентное представление - с появлением заголовка и закругленных нижних углов. Я наблюдаю за проблемой 10.11, а 10.10 все выглядит хорошо. Но к делу.setWantsLayer изменяет поведение NSWindow
В строке заголовка окна выглядит так:
и на то же время внизу выглядит следующим образом:
Нет закругленные углы. Окно инициируется программным способом и состоит из двух подзапросов, добавленных программно, с использованием метода self.contentView addSubview:.
После некоторых работ выяснилось, что добавление
[self.contentView setWantsLayer:YES];
в начале окна инициализации панели Tittle выглядит следующим образом:
плоский и твердый темнее, чем нормальный цвет - не хорошо. С другой стороны, снизу выглядит как мне нужно, чтобы она выглядела так:
Я не позволил показать больше окон. А вот INIT с моими экспериментами:
[self.contentView setWantsLayer:YES];
self.identifier = someid;
self.styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask;
self.backingType = NSBackingStoreBuffered;
[self setFrame:NSMakeRect(0, 0, windowInitWidth, windowInitHeight) display:NO];
[self setBackgroundColor:[NSColor colorForKeyPath:@"blackcolor"]];
NSButton *windowButton = [self standardWindowButton:NSWindowCloseButton];
[windowButton setEnabled:NO];
[self centerOnMainWindowScreen];
[self setupLeftPanel];
[self setupRightPanel];
[self setupConstraints];
Любая помощь, которая будет объяснить, почему это происходит (? Каков порядок оформления оконных элементов) и как правильно инициализации окна, оценили. Еще раз: он отлично работает на 10.10 в обоих направлениях. 10.11 вызывает искажение.
Я думаю, что затемненная строка заголовка вызвана цветом фона, а не слоем. – Sulthan
Вы пробовали оставить только просмотр контента и вместо этого добавить подзаголовок, который заполняет его и создает этот слой? –
@Sulthan - Я попробовал изменить цвет ([self setBackgroundColor:]) на черно-белый и не устанавливать цвет. Бар нормальный, когда contentView не поддерживается на уровне слоев. – dobry