用户体验:调整大小和关闭时保存 NSWindow 的大小

21

我发现在OS X上所有的应用程序似乎都会保存你设置的大小。下次打开时通常处于相同的位置和大小。

我正在开发一个应用程序,但是我注意到,如果我调整了窗口大小后再次启动应用程序,它只会显示我在Xcode 4的IB中设置的大小,而不是我在启动时调整的大小。

我需要手动保存每次更改窗口大小吗?还是有更简单的方法通过IB实现这一点?(我的窗口已设置最小大小,如果这会影响什么)。

4个回答

34

苹果使这变得简单。在界面编辑器中,对于您的窗口,只需在 Autosave 字段中输入唯一的名称,它就会将其保存在全局用户默认值下的该名称下。例如:

在此输入图片描述


2
谢谢!我以为有一个简单的解决方案,但就是想不出来。 - aroooo
1
我为我们的 Visual Studio for Mac 用户添加了一个链接,链接指向我的答案:https://stackoverflow.com/a/66347693/2287576 - Andrew Truckle

5

在IB中设置Autosave名称后,我可以看到窗口的框架被保存到其首选项文件中,但自动恢复仍然无法工作。然后我记得在系统偏好设置常规设置下取消勾选退出应用程序时关闭窗口复选框,窗口位置正常恢复。


5

当您在界面构建器中选择主窗口时,属性检查器中应该有一个名为Autosave的属性。对我来说,在那里放入任何名称都可以解决问题。


3
如果您没有使用IB创建窗口,您可以通过以下Swift代码设置此属性:
setFrameAutosaveName(_ name: NSWindow.FrameAutosaveName)

frameAutosaveName属性是只读的。)
例如:
windowController.window?.setFrameAutosaveName("appWindow")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接