Как правильно использовать режимы Vibrant Dark (NSAppearanceNameVibrantDark
) или Vibrant Light (NSAppearanceNameVibrantLight
) с NSWindow
?
Я создаю приложение и хотел бы предложить новый внешний вид Vibrant Dark в качестве опции для NSWindow
основного приложения. Само окно представляет собой довольно простое окно с символом NSToolbar
вверху и полосой прокрутки в качестве области основного содержимого.
Apple предоставила много информации об использовании новых ярких представлений в сочетании с NSVisualEffectsView
, но я ищу разъяснения по поводу того, как использовать эти появления на NSWindow
.
В файле заголовка NSAppearance.h
есть комментарий, в котором говорится, что яркое оформление должно быть установлено только на NSVisualEffectsView
. Нет никаких упоминаний о его поддержке на NSWindow
.
В видеороликах WWDC говорится о том, чтобы убедиться, что вы используете представления с поддержкой слоев и что вы позволяете оживлять свои подпредставления при использовании новых ярких представлений, но опять же, нет упоминания об их использовании на NSWindow
.
В образце кода VisualEffectsPlayground есть пример приложения, похожего на Facetime, которое использует режим темной яркости, но не имеет панели инструментов и использует маску полного содержимого.
Исходя из этой информации, я делаю в своем NSWindowController's windowDidLoad
методе следующее:
[self.window.contentView setWantsLayer:YES];
self.window.appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark];
И, конечно же, я получаю черный NSToolbar
с черной строкой заголовка окна. Таким образом, выглядит, как будто он работает правильно, но когда мой scrollview прокручивает его содержимое (миниатюры изображений), стандартная прозрачность под NSToolbar
и заголовком окна либо отсутствует, либо присутствует случайным образом. Похоже, нет никакой закономерности. Иногда, когда я прокручиваю полосу прокрутки, содержимое отображается в «размытом» состоянии под панелью инструментов и строкой заголовка. В других случаях, когда я прокручиваю, панель инструментов и заголовок отображаются непрозрачным черным цветом. (Строка заголовка и панель инструментов по-прежнему отображают свои заголовки и кнопки.)
Когда я не запрашиваю слой для представления содержимого окна, я получаю больше серого заголовка и заголовка окна, чем «чистый» черный. (Цвет фона моей прокрутки может быть белым, темно-серым или черным.)
Мы будем очень благодарны за любую помощь или разъяснения о том, как правильно настроить NSWindow
(который содержит NSToolbar
и NSScollView
) для использования нового внешнего вида яркости.