2012-08-28 41 views
0

我有两个NSWindow s,其中一个是另一个的孩子。基本上我想要完成的是让孩子弹出并且看起来延伸父母。如果你愿意,可以把它看作是打开一本书:封面翻转并以与标题页相同的Z顺序结束。如何让两个NSWindow显示具有相同的顺序?

但我有问题,其中一个窗口总是在另一个上投下阴影。有没有办法让他们在同一个Z上,这样既不会在另一个上投下阴影,但都会在他们下面的窗户上投下阴影?

回答

1

请问这项工作?带上您现有的子窗口,并使用setShadow:false调用删除阴影。同时在两个现有窗口后面创建第三个虚拟窗口Z顺序。使它成为这个窗口的大小和形状始终与真实的子窗口相同,并保留阴影。

有两个可能的问题:(1)在两个阴影相交的点上有一个奇怪的“双影”。 (2)聚焦的窗口投射的阴影远大于未投射聚焦的窗户的阴影。所以如果焦点在两个窗口之间转移,阴影可能会改变大小。不知道你如何解决这个问题。

否则,您唯一的选择可能是将两个窗口的阴影都关闭在一个投影了一个阴影的容器窗口中。这将是一个非常激进的用户界面变更,但根据我的经验,应用程序会修改应用程序“外部边缘”的默认外观,或者尝试编写自己的部分透明度,而不使用操作系统功能,但很少流畅运行。

相关问题