Thanks for the info > BTW you decided to fight against framework (as others mentioned state > restoration is responsible for this).
The documentation on state restoration is somewhat sparse. However, as I understood, it only kicks in when I re-open an application. When the user opens a document after opening the application, state restoration would not restore that document — would it? > On 21 Sep 2015, at 23:52, Marek Hrušovský <xhrus...@gmail.com> wrote: > > Personally I would do it like this: > 1. Figure out what values you need to store > 2. Create custom object called configuration; for each window one kind > 3. Make it conform nscoding and add a delegate property (which will point to > windowcontroller) > 3. implement initwithcoder/encodewithcoder > 3. add this to your model > > Saving: > As usual > > Loading > 1. override setDocument on your windowController > 2. call super > 3. get the configuration from document, set it's delegate and apply it where > you need it > > I thought of other approaches but they were more ugly or involved more code. > BTW you decided to fight against framework (as others mentioned state > restoration is responsible for this). > Also don't forget to call updateChangeCount (if you don't support undo). > > > > On Mon, Sep 21, 2015 at 9:46 PM, Kurt Sutter <k...@quansoft.com > <mailto:k...@quansoft.com>> wrote: > Thanks, Marek > > So how would I go at this? Since I want to store that data into the document, > I’d need, in dataOfType:error:, to create a NSKeyedArchiver, and then would I > just encode self.windowControllers? Then, in readFromData:ofType:error:, I > would read in the coder, and in makeWindowControllers I would then re-create > the window controllers? Would that work? (I have started to try exactly that, > but I have not yet succeeded with making it work. It somehow seems a bold > thing to do.) > > Kurt > > >> On 21 Sep 2015, at 20:22, Marek Hrušovský <xhrus...@gmail.com >> <mailto:xhrus...@gmail.com>> wrote: >> >> I am far from architect but each window has an option "initWithCoder" and >> within XIB you can specify option "prefer coder instantiation". The >> information you want to store is not related to the model object (within >> document) cannot be reused. >> So basically I would implement NSCoder methods encode/init withCoder >> >> Marek. >> >> On Mon, Sep 21, 2015 at 8:09 PM, Kurt Sutter <k...@quansoft.com >> <mailto:k...@quansoft.com>> wrote: >> Hi all >> >> I am trying to figure out how to store information about my windows and >> views in a document, and how to restore it. Note that I am talking about >> storing the information in the document itself, not in the application’s >> preferences settings. >> >> Specifically, I have a child of NSDocument that saves its model data using >> dataOfType:error: and restores it using readFromData:ofType:error: That >> works fine. Now, that document may have a variable number of windows for >> showing aspects of the data of the document’s model, and each window has a >> number of views. The windows and views contain state information, such as >> scroll positions, window positions, zoom factors, etc. >> >> I want the state information of the windows and views to be stored in the >> document so that the same windows and views reopen when the user opens the >> document. >> >> What is the best way to do that? I guess I have to take two steps: >> >> (a) collect that state information in dataOfType:error: and store it in the >> NSData object to be returned and >> (b) retrieve that data from the NSDocument in readFromData:ofType:error: and >> then somehow apply it in the NSDocument’s makeWindowControllers method. >> >> While both of this is certainly feasible, I am not sure what is the most >> elegant way to do it. Do I run encodeWithCoder against the document’s window >> controllers during save, and then somehow restore the window controllers in >> the makeWindowControllers? Or what else? >> >> I have tried to find pointers on how to do this in the most elegant manner, >> but I found nothing useful. So I would greatly appreciate any proposals. >> >> Thanks in advance >> >> Kurt >> _______________________________________________ >> >> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com >> <mailto:Cocoa-dev@lists.apple.com>) >> >> Please do not post admin requests or moderator comments to the list. >> Contact the moderators at cocoa-dev-admins(at)lists.apple.com >> <http://lists.apple.com/> >> >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/cocoa-dev/xhruso00%40gmail.com >> <https://lists.apple.com/mailman/options/cocoa-dev/xhruso00%40gmail.com> >> >> This email sent to xhrus...@gmail.com <mailto:xhrus...@gmail.com> > > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com