gpt4 book ai didi

macos - 如何设置主窗口的位置和大小(以编程方式)?

转载 作者:搜寻专家 更新时间:2023-10-30 21:59:30 26 4
gpt4 key购买 nike

我正在使用 OS X(10.11,Xcode 7.0)的最新默认项目。它使用 Storyboard,层次结构如下:

Window Controller -> View Controller

我想设置窗口的初始位置和框架大小。显然用户可以更改它,但我希望它从一些默认值开始。我试过子类化 NSWindowController,但这没有效果。

  class WindowController: NSWindowController {

override func windowDidLoad() {
super.windowDidLoad()

guard let window = window else {
return
}

let windowOriginPoint = CGPoint(x: 0, y: 0)
let windowSize = CGSize(width: 800, height: 400)
window.setFrame(NSRect(origin: windowOriginPoint, size: windowSize), display: true)

print("windowDidLoad")
}

}

这样做的正确方法是什么?

最佳答案

我遇到了同样的问题。我通过将 setFrame 代码移到 windowDidBecomeMain 而不是 windowDidLoad 中解决了这个问题;如果窗口已被手动移动并重新选择为主窗口,则会产生不好的副作用:拖动时窗口会跳转并立即返回到正确的位置。为了避免这种情况,我使用了一个补丁:在 windowController 中,我声明了一个

private var firstAppearance = true;

windowDidBecomeMain 中,我只在 firstAppearance 上执行 setFrame;然后我将 firstAppearance 设置为 false。

关于macos - 如何设置主窗口的位置和大小(以编程方式)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882548/

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