Custom NSWindow with a custom shadow
我有一个 NSWindow 子类,看起来像这样
困扰我的是我想改变阴影。
在标准窗口上,比如这里的 Xcode,对比度有点弱。
所以我想对它应用一个更强的 NSShadow。
我在这里找到了这个:
带有自定义阴影的NSWindow
显然,您不应该这样做,因为 UI 应该主要由操作系统处理。
但是窗口已经是完全自定义的了,所以我想应该没问题。
我怎样才能做到这一点?
编辑
我忘了提,我知道我可以重绘 NSWindow,但我尽量避免这种情况。
- 如果您只希望顶部的阴影比其他部分重,看起来您正在使用 INAppStoreWindow,因此请覆盖绘图块。否则,不要碰 NSThemeFrame。
- 它实际上不是 INAppStoreWindow。它只是一个带有自定义内容视图的无边框窗口。而且我想整体增加阴影,而不仅仅是顶部
据我所知,如果不深入研究私有 API,就无法做到这一点。
如果你非常想改变阴影,唯一的办法就是在你的窗口中设置根视图有一个层,在那个层上设置一个阴影,然后插入内容为阴影。但这也带来了一大堆问题,包括窗口捕获本应用于底层窗口的点击,以及关闭调整句柄的大小。
- 然而,Electron 做到了。
来源:https://www.codenong.com/14093975/