objective-c – 如何在NSWindow上使用黑暗的活力?

objective-c – 如何在NSWindow上使用黑暗的活力?,第1张

概述使用NSWindow的“充满活力的Dark”(NSAppearanceNameVibrantDark)或Vibrant Light(NSAppearanceNameVibrantLight)模式的正确方法是什么? 我正在构建应用程序,并希望为主应用程序的NSWindow提供新的Vibrant Dark外观.窗口本身是一个非常直的前窗,顶部有NSToolbar,滚动视图是主要内容区域. 有很多关于使 使用NSWindow的“充满活力的Dark”(NSAppearancenameVibrantDark)或Vibrant light(NSAppearancenameVibrantlight)模式的正确方法是什么?

我正在构建应用程序,并希望为主应用程序的NSWindow提供新的Vibrant Dark外观.窗口本身是一个非常直的前窗,顶部有NSToolbar,滚动视图是主要内容区域.

有很多关于使用新的活力外观与NSVisualEffectsVIEw的信息,但是我正在寻找关于如何在NSWindow上使用这些外观的澄清.

在NSAppearance.h头文件中,有一条评论指出,活跃的外观应该只能在NSVisualEffectsVIEw上设置.没有提到它在NSWindow上得到支持.

WWDC视频讲述了确保您使用层次支持的视图,并且在使用新的充满活力的外观时允许您的子视图中的活动,但再次,没有提及在NSWindow上使用它们.

VisualEffectsPlayground示例代码具有使用暗活力模式的Facetime类应用程序的示例,但它没有工具栏,并且使用全内容掩码.

从这些信息,我在我的NSWindowController的windowDIDLoad方法中执行以下 *** 作:

[self.window.contentVIEw setWantsLayer:YES];self.window.appearance = [NSAppearance appearancenamed:NSAppearancenameVibrantDark];

而且,当然,我得到一个黑色的窗口标题栏的黑色NSToolbar.所以看起来它的工作正常,但是当我的滚动浏览滚动其内容(图像的缩略图)NSToolbar下的标准半透明度和窗口的标题栏不存在或随机呈现.似乎没有任何模式.有时滚动滚动浏览时,内容会显示在工具栏和标题栏下的“模糊”状态.其他时候,当我滚动,工具栏和标题栏只是一个不透明的黑色. (标题栏和工具栏仍然绘制他们的标题和按钮.)

当我不要求窗口内容视图的图层时,我会得到一个灰色的标题栏和窗口标题,而不是一个“纯”的黑色. (我的scrollvIEw的背景颜色可以是白色,深灰色还是黑色.)

任何帮助或澄清如何正确配置NSWindow(包含NSToolbar和NSScollVIEw)以使用新的活力外观将非常感谢.

解决方法 这将使一个暗模式的窗口.随后,窗口中的所有内容(包括标题栏,工具栏,甚至对话框)将变黑.

let USE_DARK_MODE = true    if USE_DARK_MODE {        window.appearance = NSAppearance(named: NSAppearancenameVibrantDark)        window.invalIDateShadow()    }

invalIDateShadow似乎不是必需的,但是如果缺少,有时阴影不能正常工作. (OS X 10.10)

总结

以上是内存溢出为你收集整理的objective-c – 如何在NSWindow上使用黑暗的活力?全部内容,希望文章能够帮你解决objective-c – 如何在NSWindow上使用黑暗的活力?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1026615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存