Re: Opening a file but not associating with NSDocument
Re: Opening a file but not associating with NSDocument
- Subject: Re: Opening a file but not associating with NSDocument
- From: Jerry Krinock <email@hidden>
- Date: Thu, 19 May 2016 22:16:41 -0700
> On 2016 May 19, at 16:13, Rick Mann <email@hidden> wrote:
>
> I have a complex NSDocument with lots of files. One of those files is has a .mfst extension. If the user double-clicks one of those files, I want my app to create my NSDocument subclass, and then call a method on it to read the contents of that file, but I don't want that to be the file it then associates with the document. The actual on-disk representation is a package, and can either copy the originally-opened file contents into the package, or reference that file with an alias.
>
> At some point, the user will have to specify a location for the "real" document package to live. Conversely, if the user double-clicks on the real document package, I want that to behave as expected.
>
> How do I set up my Document Types and handle this scenario?
You will need two document types (CFBundleDocumentTypes) in your Info.plist, one for your .mfst document, and one for the “real” document (NSDocument subclass / package). The .mfst should have its “role” (CFBundleTypeRole) set to “Reader” and will have no windows. In its -readFromURL:ofType:error:, or later, it will programatically create a “real” document by invoking -[NSDocumentController makeUntitledDocumentOfType:error:]. Cocoa will present the Save dialog the user clicks File > Save. Then make your alias or move the original file with NSFileManager, or if this is a Core Data document, consider using BSManagedDocument which has methods to read and write so-called “additional content” into document packages.
In the Document-Based App Programming Guide for Mac, read > Alternative Design Considerations > Multiple Document Types Use Multiple NSDocument Subclasses.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden