On 23 Apr 2013, at 15:19, Jerry Krinock wrote: > > On 2013 Apr 22, at 21:42, Steve Mills <smi...@makemusic.com> wrote: > >> [-setAutosavingDelay:0.0] didn't work. > > OK, then. I retract my surprise. > >> The pause mechanism is something in our own code - a bool that says it's >> paused (it's actually an integer so it can be incremented/decremented in a >> nested fashion). > > That's fine, but your code is not running the show in Lion autosave. The > holy grail we're discussing here is a method to tell Cocoa "Stop sending me > autosave requests (-[NSDocument > autosaveWithImplicitCancellability:completionHandler:]) until I tell you to > start again". I believe, as I have from the beginning, that there is no such > method. If your NSDocument subclass returns YES to +autosavesInPlace, you > *will* get (-[NSDocument > autosaveWithImplicitCancellability:completionHandler:]) at arbitrary times. > >> I check this value in writeToURL and hasUnautosavedChanges. > > I've never tried -hasUnautosavedChanges, because it's another "Tiger" > autosave method, available since Mac OS X 10.4. Do you ever get that > message? If so, then returning NO might pause -[NSDocument > autosaveWithImplicitCancellability:completionHandler:], which is the holy > grail here. If that works, I shall drop my jaw again.
-hasUnautosavedChanges continues to be applicable to all (auto)saving models. I caution against overriding it since: A) Your override is likely a lie to the system when you get down to it. This might upset the state for other bits of the system B) A perfectly good system for backing out of non-essential autosaves already exists, and should be used instead If you read the docs for -autosaveWithImplicitCancellability:completionHandler: *its* implementation calls -hasUnautosavedChanges. It will back out without doing any work should the document claim not to have any unautosaved changes. I suspect that if you do override -hasUnautosavedChanges, a call to -scheduleAutosaving would be needed — at least under some circumstances — to restart autosave when you’re ready. _______________________________________________ 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