简体   繁体   中英

NSWindow restorable not always working

I have checked the restorable option on my NSWindow When I move my application and change its size and close/reopen my application it sets the window size and position to the last size and position

but this doesn't happen on every computer where i test it. it only happens to a few computers

they don't have special settings regarding the resume.

Does anybody have any experience with this?

But this doesn't happen on every computer where I test it. It only happens to a few computers. They don't have special settings regarding the resume.

Actually, they do. Take a look into the System Preferences > General pane. There should be an option named “Close windows when quitting an application” which is responsible for the restoration behavior. Additionally, in OS X Mountain Lion, Apple changed default behavior and now the app restores its state only when you quit using Command-Option-Q.

So, you probably should check which OS X version is installed on another Mac, and which preference is selected in the General pane. Hope this helps!

One thing you should know is that checking the "Restorable" option in IB only changes a window property. The actual restoring and saving is in your hands.

First, you have to conform to the NSWindowDelegate protocol and implement the -window:willEncodeRestorableState:state and -window:didDecodeRestorableState: methods that encode and decode your window properties (For example your windows frame, which you obviously get by calling [myWindow frame] ).

You also need to conform to the NSWindowRestoration protocol and implement +restoreWindowWithIdentifier:state:completionHandler: . (make sure you set your class to restoration class, with the setRestorationClass method)

For additional, more in depth, information, you can visit this Apple Documentation document here .

If all you want is to restore the window's frame use setFrameAutosaveName: .

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/WinPanel/Tasks/SavingWindowPosition.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM