如何以编程方式保存NSWindow?

时间:2014-05-10 21:42:15

标签: objective-c macos cocoa

基本上我有一个已分配窗口的数组,并希望在关闭应用程序时保存其状态(位置/大小/子视图)。有没有办法做到这一点?

当我尝试使用NSUserDefault时,我收到以下错误消息:尝试设置非属性列表。事实证明,您无法在用户默认值中保存NSWindows。我应该使用它吗?

 //customView
 [self setFrameAutosaveName:[NSString stringWithFormat:@"%d",self.tag]];

1 个答案:

答案 0 :(得分:1)

在窗口中保存子视图的位置和大小通常没有用。

使用setFrameAutosaveName:将保存窗口的位置和给定名称的大小。下次您的应用打开文档并创建一个具有该自动保存名称的窗口时,应恢复其状态。

对于子视图的大小和位置,它们通常基于自动布局系统或使用Struts和Springs自动布局。要么是这样,要么它们的位置和大小来自文档模型中的数据。无论哪种方式,您通常不需要自己保存它们。为什么你认为你应该拯救他们?你想通过拯救他们来实现什么目标?