让我重新表述一下这个问题:
如何保持子 NSWindow(使用 NSWindow 添加到主 NSWindow addChildWindow
)与主窗口的大小相同?
老问题:
我有两个NSWindow
:一个 uiWindow 和一个 openglWindow。uiWindow 是无边界的,最初的大小与 openglWindow 相同。我将它添加为子窗口。我想让 uiWindow 跟随 openglWindow 经历的任何大小变化。为此,我订阅了 openglWindow 的委托,并且正在听该windowWillResize
方法。然而,我现在很困惑。我不知道在 uiWindow 上调用哪个函数来调整它的大小。有很多选择:
setFrame: display:
`contentRectForFrameRect
frameRectForContentRect
下面是子窗口的初始化代码。
NSRect uiWindowRect = [self.openglWindow convertRectToScreen:((NSView*)self.openglWindow.contentView).bounds];
NSWindow* uiWindow = [[NSWindow alloc] initWithContentRect:uiWindowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreNonretained defer:NO];
[self.openglWindow addChildWindow:uiWindow ordered:NSWindowAbove];