NSWindow restorable not always working

3.4k Views Asked by At

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?

3

There are 3 best solutions below

4
On BEST ANSWER

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!

1
On

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.

0
On

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