我正在使用 OS X 的最新默认项目(10.11、Xcode 7.0)。它使用故事板,层次结构如下:
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;
In the windowDidBecomeMain
我只在firstAppearance
;然后我设置firstAppearance
为假。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)