我目前正在创建一个应用程序,当它重新打开时,它需要具有与关闭前相同的大小和屏幕位置。
我希望这只是我没有注意到的界面生成器中的一个复选标记。
谢谢!:-)
您应该实施Application Persistence。
在这里阅读更多。
当用户注销时,Lion 为他们提供了在重新登录时将所有打开的应用程序恢复到当前状态的选项。要在您的应用程序中支持此功能,您必须为每个窗口确定是否应使用 -setRestorable: 方法保留其状态. 然后 Cocoa 将负责保存窗口及其关联窗口控制器的状态(大小、位置等),让您可以选择写出与窗口关联的自定义对象的附加状态信息。
要在重新启动时恢复应用程序的状态,每个窗口都必须通过 +restoreWindowWithIdentifier:state:completionHandler: 类方法(在 NSWindowRestoration 协议中定义)指定一个所谓的恢复类。然后恢复类负责实例化窗口及其关联对象(例如窗口控制器)。有关分步指南,请参阅 Mac OS X 应用程序编程指南中的用户界面保留主题。
靠近一个复选框。设置窗口的框架自动保存名称。这是在应用程序的首选项(由 管理NSWindow
)中命名一个值的键,在该首选项下存储和检索窗口的框架。
将大小和位置存储在 NSUserDefaults 中。例如,您将 cgpoint 存储在 Nsuserdefaults 中,如下所示
CGPoint *point=CGPointMake(34,67);
NSUserDefaults* def=[NSUserDefaults standardUserDefaults];
NSString* mypointstr=NSStringFromCGPoint(point);
[def SetObject:mypointstr:forkey:@"mypoint"];
下次启动应用程序时获取此信息
NSString* myprevstr=[def Objectforkey:@"mypoint"]
CGPoint* point=CGPointFromString(myprevstr);