我检查了NSWindow上的可恢复选项 当我移动我的应用程序并更改其大小并关闭/重新打开我的应用程序时,它会将窗口大小和位置设置为最后的大小和位置
但是在我测试它的每台计算机上都不会发生这种情况。它只发生在几台电脑上
他们没有关于简历的特殊设置。
有没有人有这方面的经验?
答案 0 :(得分:23)
但是在我测试它的每台计算机上都不会发生这种情况。它只是 发生在几台电脑上。它们没有特殊设置 简历。
实际上,他们确实如此。查看系统偏好设置>常规窗格。应该有一个名为“退出应用程序时关闭窗口”的选项,它负责恢复行为。此外,在OS X Mountain Lion中,Apple更改了默认行为,现在应用程序仅在您使用Command-Option-Q退出时才恢复其状态。
因此,您可能应该检查在另一台Mac上安装了哪个OS X版本,以及在“常规”窗格中选择了哪个首选项。希望这有帮助!
答案 1 :(得分:2)
您应该知道的一件事是检查IB中的“可恢复”选项只会更改窗口属性。实际的恢复和保存在您手中。
首先,您必须遵守NSWindowDelegate
协议并实施
-window:willEncodeRestorableState:state
和-window:didDecodeRestorableState:
对窗口属性进行编码和解码的方法(例如,您通过调用[myWindow frame]
明显获得的窗口框架)。
您还需要符合NSWindowRestoration
协议并实施+restoreWindowWithIdentifier:state:completionHandler:
。 (确保使用setRestorationClass
方法将类设置为恢复类)
有关其他更深入的信息,您可以访问this Apple Documentation document here。
答案 2 :(得分:1)
如果你想要的只是恢复窗口的框架,请使用setFrameAutosaveName:
。