10.7 SDK, targeting 10.6 and 10.7. My application writes an XML document that includes styled text in the form of HTML. At the user end is an NSTextView; I use an in-memory Core Data store for working storage. The text view is bound to the backing NSManagedObject through an NSArrayController. I have an NSValueTransformer subclass between the text view and the array controller to translate between the attributed string and NSData containing the HTML.
So the chain is: NSTextView ^ | (NSAttributedString) | v NSValueTransformer ^ | (NSData - HTML) | v NSArrayController ^ | v NSManagedObject data attribute And my NSDocument subclass uses a utility class of mine to walk the managed-object context to create the XML file, with the rich-text HTML as CDATA. It has to be HTML, because it's for display on an iPad. Maybe I'm too lazy, but my document implements only -dataOfType:error: and -readFromData:ofType:error:. The first thing -dataOfType:error: does is to send commitEditing to the NSControllers. My document returns YES from -autosavesInPlace, and implements -encodeRestorableStateWithCoder: and -restoreStateWithCoder:. MY PROBLEM Under Lion (I haven't checked with Snow Leopard), when an autosave is triggered, the active NSTextView loses its selection and scrolls to the top. This happens in -dataOfType:error:, before my encode/restoreState methods (in which I've tried saving selection ranges and first responder) are called. By the time encodeRestorableStateWithCoder: is called, self.textView.selectedRange points to the end of the string, regardless of where the selection had been. When I single-step through dataOfType:error:, I see that the scroll bar on the active text view appears (matching the current position) when I call commitEditing on the view's controlling NSArrayController. Snatching the user's work from under his hands is a horrible experience. How can I fix this? — F _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com