2013-03-30 31 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); 
相關問題