使应用程序启动时具有关闭时的大小和位置

时间:2013-03-30 15:47:35

标签: xcode cocoa

我正在创建一个应用程序,当它重新打开时,需要具有与关闭之前相同的大小和屏幕位置。

我希望它只是界面构建器中的一个复选标记,我没有注意到。

谢谢! : - )

3 个答案:

答案 0 :(得分:1)

您应该实施应用持久性

了解更多here

当用户退出时,Lion会为他们提供在重新登录时将所有打开的应用恢复到当前状态的选项。要在应用中支持此功能,您必须确定每个窗口是否应使用以下项保留其状态: setRestorable:方法。然后,Cocoa将负责保存窗口及其相关窗口控制器的状态(大小,位置等),使您可以选择写出与窗口关联的自定义对象的其他状态信息。

要在重新启动应用程序时恢复应用程序的状态,每个窗口必须通过+ restoreWindowWithIdentifier:state:completionHandler:class方法(在NSWindowRestoration协议中定义)指定所谓的恢复类。然后,恢复类负责实例化窗口及其相关对象(例如窗口控制器)。有关分步指南,请参阅“Mac OS X应用程序编程指南”中的“用户界面保留”主题。

答案 1 :(得分:1)

关闭复选框。设置窗口的框架自动保存名称。这是一个键,用于命名应用程序首选项中的值(由NSWindow管理),在该首选项下存储和检索窗口的框架。

答案 2 :(得分:0)

在NSUserDefault中存储大小和位置。例如,您在Nsuserdefaults中存储cgpoint 如下

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);