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") } }
这样做的正确方法是什么?
解决方法 我遇到了同样的问题.我通过在windowDIDBecomeMain中移动setFrame代码而不是windowDIDLoad来解决它;如果手动移动窗口并重新选择成为主窗口,则会产生不良副作用:拖动时窗口跳转并立即返回到正确位置.为了避免它,我使用了一个补丁:在windowController中,我声明了一个private var firstAppearance = true;
在windowDIDBecomeMain我只在firstAppearance上做setFrame;然后我将firstAppearance设置为false.
总结以上是内存溢出为你收集整理的macos – 如何设置主窗口的位置和大小(以编程方式)?全部内容,希望文章能够帮你解决macos – 如何设置主窗口的位置和大小(以编程方式)?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)