gpt4 book ai didi

cocoa - 更改 NSWindow 标题栏的颜色

转载 作者:行者123 更新时间:2023-12-03 16:12:32 25 4
gpt4 key购买 nike

我正在开发一个桌面应用程序,我想在其中更改 NSWindow 标题栏的颜色。我究竟该如何做到这一点?

最佳答案

NSWindow 的内容 View 有一个 super View ,它是 NSThemeFrame 的实例。该类负责绘制标题文本、窗口/工具栏背景纹理,并且它包含其他所有内容的 subview (关闭按钮、全屏按钮、NSDocument 图标等)。

您可以使用 Objective-C 运行时将 NSThemeFrame 的 drawRect: 方法替换为您自己的方法,该方法将调用父实现,然后在其之上执行自定义绘制。

还有一个私有(private)方法来查找绘制标题的矩形,以及 NSFont 上的公共(public)方法来查找它的字体和字体大小。

我所做的是将窗口背景颜色设置为纯色(黑色)而不是渐变/纹理,然后将其设置为“纹理”窗口(这会导致实际渲染背景颜色,否则它不会发生),然后我在标题栏上我知道标题已经绘制的区域中绘制一个黑色方 block ,然后在它的位置绘制我自己的标题,用浅灰色而不是深灰色。

源代码在这里:https://github.com/abhibeckert/Dux/blob/master/Dux/DuxProjectWindow.m (注意:如果 DUX_DARK_MODE == 1,它仅执行自定义标题文本颜色)

这样做可能会导致您的应用程序被 Mac App Store 屏蔽,但它相当可靠。只需确保在每个新的 OS X 主要版本上对其进行测试即可。

关于cocoa - 更改 NSWindow 标题栏的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3044303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com