我有两个NSWindow
,其中一个是另一个的孩子。基本上我想要完成的是让孩子弹出并看起来扩展父母。如果您愿意,可以将其视为打开一本书:封面会翻转并以与标题页相同的Z顺序结束。
但是我遇到的问题是其中一个窗口总是在另一个窗口上投射阴影。有没有办法让它们在同一个Z上,这样既不会在另一个上投下阴影,又会在它们下方的窗户上投下阴影?
答案 0 :(得分:1)
这可行吗?使用现有的子窗口,并使用setShadow:false调用删除阴影。同时在两个现有窗口后面创建一个Z-ordered的第三个虚拟窗口。使它成为这个窗口始终与真实子窗口的大小和形状相同,并保持阴影。
这有两个可能的问题:(1)一个奇怪的双阴影'在两个阴影相交的点处。 (2)具有焦点的窗口投射的阴影远大于没有焦点投射的窗口的阴影。因此,如果焦点在两个窗口之间移动,阴影可能会改变大小。不确定你是如何解决这个问题的。
否则你唯一的选择可能就是把你的两个窗户都关上阴影,在一个令人讨厌的容器窗口中投下一个阴影。这将是一个非常激进的UI更改,但根据我的经验,应用程序修补他们的应用程序的外部边缘'或尝试编写自己的部分透明度而不使用OS功能很少顺利运行。