2015-01-10 4 views
0

Мне не повезло с тем, чтобы вернуть NSPopover к ее 10.9 внешнему виду при работе в 10.10. У меня есть popover, который прикреплен к NSView, который пользователь тащит. Поппер должен быть быть прозрачным, чтобы пользователь все еще мог видеть положение других элементов интерфейса под ним.Невозможно отключить размытие фона с помощью NSPopover

Все работает нормально под 10.9, но теперь под 10.10 с новыми неистовыми размытиями Apple, я не могу вернуться к такому же виду на 10.10 (если только я, пользователь не включил «Уменьшить прозрачность» в Системных настройках> Доступность. Изменение предпочтений, которое я не могу обеспечить для конечных пользователей!).

Пытались:

self.draggingPopover.appearance = NSPopoverAppearanceHUD; 
self.popoverView.superview.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua]; 
self.popoverView.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua]; 

Ни один из них не имеет никакого значения для появления поповер на экране.

drawRect в моем представлении подкласс заполняет фон моим выбранным цветом, но игнорирует значение альфа, а popover непрозрачен.

Аналогичным образом я могу использовать self.popoverView.layer.backgroundColor = ..., но значение альфа тоже игнорируется!

+0

кажется, что, поскольку 10.10 SuperView представления содержимого поповер (в NSPopoverFrame) рисует с полной непрозрачности, поэтому независимо от того, что вы делаете, с точки зрения содержания, прозрачность ISN Поддерживается. – martinjbaker

ответ

1

Использование:

[popover setAppearance:(NSPopoverAppearance)[NSAppearance appearanceNamed:NSAppearanceNameAqua]]; 
+0

К сожалению, я получаю тот же результат, что и внешний вид вида. Размытие отключено, но я не могу нарисовать прозрачность на фоне представления. Я даже попытался установить layer.backgroundColor в супервизоре представления контента (NSPopoverFrame), но опять же игнорирует любую прозрачность. – martinjbaker

0

Если требование заключается в том, что поповер прозрачен (независимо от любых будущих изменений дизайна в пирог), вы могли бы просто установить окна поповер (т.е. по popoverView в -window) alphaValue в какой-то другой Значение < 1.0?

+0

Нет, потому что контент будет прозрачным. Мне нужен только фоном 50% непрозрачности, но текст сверху должен быть непрозрачным на 100%. – martinjbaker

0

Вы можете установить внешний вид Aqua в раскадровке. Выберите NSPopover «посмотреть содержимое и использовать этот параметр:

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^