2013-03-30 32 views

回答

1

您应该执行应用程序持久性

了解更多here

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

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

+0

嗨时间, 我的天堂”之前使用过的方法。你能解释我应该如何实现这个到我的代码? :-) – Deni

+0

我已经给出了链接。看看那里。 –

0

靠近复选框。设置窗口的框架自动保存名称。这是在应用程序的首选项中指定一个值(由NSWindow管理)的一个关键字,在该选项下存储和检索窗口的框架。在NSUserDefaults.For例如

+0

嗨,这不利于设置自动转存名:-( 能把它也许是因为我使用: - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(*的NSApplication)应用程序 { 返回YES; } – Deni

+0

你打电话像'-center'或'-setFrame ...'方法?你用什么来显示窗口?(或者它在你的MainMenu.xib中并且在启动时被标记为可见) –

+0

我不打电话给我既不 - 中心也不 - 集合 为了显示它,我已经在启动时将它标记为可见:-) – Deni

0

商店的大小和位置,你在存储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); 
相关问题