gpt4 book ai didi

macos - NSWindow 恢复框架位置

转载 作者:行者123 更新时间:2023-12-05 07:49:18 25 4
gpt4 key购买 nike

在 OS X 上是否可以通过编程方式访问缩放或最大化窗口的恢复窗口位置。

即:在大多数 OS X 应用程序中,您可以双击标题栏来缩放它。如果您再次双击它,它会恢复到之前的位置。

我希望能够获取和设置保存的位置矩形。

最佳答案

您可以创建自定义 NSWindowDelegate 以在 NSWindow 框架最大化之前保存它:

@interface MyWindowDelegate : NSObject {
@private
NSRect m_maximizedFrame;
NSRect m_restoredFrame;
}

- (NSRect)windowWillUseStandardFrame:(NSWindow*)window
defaultFrame:(NSRect)newFrame
{
// Save the expected frame when the window is maximized
m_maximizedFrame = newFrame;
return newFrame;
}

- (BOOL)windowShouldZoom:(NSWindow*)window
toFrame:(NSRect)newFrame
{
// The NSWindow is going to be maximized...
if (NSEqualRects(newFrame, m_maximizedFrame)) {
// Save the frame before it's maximized
m_restoredFrame = [window frame];
}
return YES;
}
@end

m_restoredFrame 只有在之后窗口未调整大小时才有效(即 [window isZoomed] 必须为真)。我不确定是否有更好的方法。

关于macos - NSWindow 恢复框架位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37473172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com