关于objective C:Save NSWindow Size on Resize | 珊瑚贝

Save NSWindow Size on Resize & Close For User


我注意到 OS X 上的所有应用程序似乎都保存了您设置的大小。下次打开它时,它通常处于相同的位置和大小。

我正在制作一个应用程序,我注意到在调整大小后,如果我再次启动应用程序,它只是我在 Xcode 4 的 IB 中设置的大小,而不是我在启动时调整它的大小。

每次更改窗口大小时我都必须手动保存吗?或者有没有更简单的方法通过 IB 做到这一点? (如果有任何改变,我的窗口确实设置了最小尺寸。)


Apple 让这一切变得简单。在界面生成器中,对于您的窗口,只需在 Autosave 字段中输入一个唯一名称,它将以该名称保存在全局用户默认值下。例如

enter

  • 谢谢!我以为有一个简单的解决方案,但就是想不通。
  • 我为我们的 Visual Studio for Mac 用户添加了我自己的答案的链接:stackoverflow.com/a/66347693/2287576


当您在 Interface Builder 中选择主窗口时,属性检查器中应该有一个名为 Autosave 的属性。把任何名字都放在那里对我有用。


在 IB 中设置 Autosave 名称后,我可以看到我的窗口框架正在保存到它的首选项文件中,但自动恢复仍然不起作用。然后我记得取消选中常规设置下系统偏好设置中的Close windows when quitting an app复选框,并且窗口位置按预期恢复。


如果你没有使用 IB 来创建你的窗口,你可以在 Swift 中设置这个属性:

1
setFrameAutosaveName(_ name: NSWindow.FrameAutosaveName)

(frameAutosaveName 属性仅适用于 get)

例如:

1
windowController.window?.setFrameAutosaveName(“appWindow”)

来源:https://www.codenong.com/10115280/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9357.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?