自定义NSWindow带有自定义阴影

时间:2012-12-30 19:39:42

标签: objective-c macos cocoa nswindow nsshadow

我有一个NSWindow子类,看起来像这样

enter image description here

困扰我的是我想改变阴影。 在标准窗口上,就像Xcode一样,对比度有点弱。

所以我想对它应用更强大的NSShadow

我在这里找到了这个:

NSWindow with custom shadow

显然,你不应该,因为UI应该主要由操作系统处理。 但是窗口已经完全自定义了,所以我认为它没问题。

我怎样才能做到这一点?


修改

我忘了提及,我知道我可以重新绘制NSWindow,但我尽量避免这种情况。

1 个答案:

答案 0 :(得分:2)

据我所知,如果不钻研私有API,就无法实现这一目标。

如果您迫切想要更改阴影,唯一可以做到这一点的方法是,如果您将窗口中的根视图设置为具有图层,在该图层上设置阴影,并插入内容以为其创建空间阴影。但这也带来了许多问题,包括窗口捕获应该用于底层窗口的点击,以及调整关闭句柄的大小。