Cocoa 是否可以将子窗口剪裁到其父窗口?

Cocoa 是否可以将子窗口剪裁到其父窗口?,cocoa,nswindow,Cocoa,Nswindow,我有一个无边界的NSWindow,我将它作为子窗口添加到应用程序的主窗口中。在特定模式下,子窗口可能部分位于父窗口的框架之外,然后向前缩放,使其完全封闭 如果主窗口不是全屏的,那么在主窗口之外绘制子窗口看起来很奇怪。有可能把它剪掉吗?没有,我想没有。在OSX上,窗口(从而NSWindows)由窗口服务器合成,并有自己的缓冲区。它们本质上是OpenGL四边形,并且绘制成纹理(这是一种简化,但基本上是它的工作方式) 您没有在问题中解释为什么要使用子窗口(例如,与层背景视图相反,甚至只是普通的NSVi

我有一个无边界的NSWindow,我将它作为子窗口添加到应用程序的主窗口中。在特定模式下,子窗口可能部分位于父窗口的框架之外,然后向前缩放,使其完全封闭


如果主窗口不是全屏的,那么在主窗口之外绘制子窗口看起来很奇怪。有可能把它剪掉吗?

没有,我想没有。在OSX上,窗口(从而
NSWindow
s)由窗口服务器合成,并有自己的缓冲区。它们本质上是OpenGL四边形,并且绘制成纹理(这是一种简化,但基本上是它的工作方式)

您没有在问题中解释为什么要使用子窗口(例如,与层背景视图相反,甚至只是普通的
NSView
);通常,您可以完全避免使用子窗口,在本例中,这似乎是解决问题的最直接的方法


(请注意,如果您来自Windows背景,Cocoa希望您在大多数情况下使用视图而不是Windows;在典型的应用程序中,您只需要在界面层次结构的顶层使用Windows。)

它是视频应用程序的“全屏”查看器,因此需要能够调整屏幕大小并填充屏幕。i、 e.在主窗口的边界之外。@martinjbaker因此可以根据需要创建窗口(即,当你想做缩放动画时),而不是一直将其留在那里。实际上,自从写了这个原始问题之后,这个问题是无效的,因为窗口不再有动画。