对NSAppearanceNameVibrantDark
使用充满活力的暗(NSAppearanceNameVibrantLight
)或充满活力之光(NSWindow
)模式的正确方法是什么?
我正在构建一个应用程序,并希望提供新的Vibrant Dark外观作为主要应用程序NSWindow
的选项。窗口本身是一个非常直接的窗口,顶部有NSToolbar
,滚动视图是主要内容区域。
Apple提供了大量有关使用新动态外观和NSVisualEffectsView
的信息,但我正在寻找有关如何在{{1}上使用这些外观的说明}。
在NSWindow
标题文件中,有一条评论指出只应在NSAppearance.h
上设置充满活力的外观。没有提及NSVisualEffectsView
支持它。
WWDC视频谈论确保您使用图层支持的视图,以及在使用新的充满活力的外观时您是否允许在子视图上保持活力,但同样,没有提及在NSWindow
。
VisualEffectsPlayground示例代码确实有一个类似Facetime的应用程序的示例,该应用程序使用暗光振动模式,但它没有工具栏,并且它使用全内容掩码。
根据该信息,我在NSWindow
方法中执行以下操作:
NSWindowController's windowDidLoad
而且,当然,我得到一个带有黑色窗口标题栏的黑色[self.window.contentView setWantsLayer:YES];
self.window.appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark];
。所以看起来就像它正常工作一样,但当我的滚动视图滚动其内容(图像的缩略图)时NSToolbar
和窗口标题栏下的标准半透明度不存在或随机存在。似乎没有任何模式。有时当我滚动滚动视图时,内容显示在"模糊"工具栏和标题栏下的状态。其他时候滚动时,工具栏和标题栏只是一个不透明的黑色。 (标题栏和工具栏仍然绘制其标题和按钮。)
当我不为窗口的内容视图请求图层时,我会获得更多灰色标题栏和窗口标题,而不是"纯粹的"黑的那个。 (我的滚动视图的背景颜色可以是白色,深灰色或黑色。)
如何正确配置NSToolbar
(包含NSWindow
和NSToolbar
)以使用新的活力外观的任何帮助或说明将非常感激。
答案 0 :(得分:6)
这将形成一个暗模式窗口。随后,窗口中的所有内容(包括标题栏,工具栏甚至对话框)都会变暗。
let USE_DARK_MODE = true
if USE_DARK_MODE {
window.appearance = NSAppearance(named: NSAppearanceNameVibrantDark)
window.invalidateShadow()
}
invalidateShadow
似乎不是必需的,但如果缺少,阴影有时无法正常工作。 (OS X 10.10)
答案 1 :(得分:3)