On Sep 16, 2013, at 12:24 PM, Kevin Perry <kpe...@apple.com> wrote: > Re-using a single NSDocument instance to represent several different files is > certainly atypical…
True, and I don't know what other similar applications so, but for some applications that are viewers it makes sense to let the user move forwards and backwards through a folder to display the file using the same window rather than opening and closing a window for each file. IT's mre efficient and a more pleasant experience for the user. > But, I suspect the problem here is that you're not using File Coordination > when reading in the contents of the new file. By not doing that, you're not > giving File Coordination the hint that it needs to check back with your > NSFilePresenter (the NSDocument) for its presentedItemURL. When you read in > the contents of the new file you should: > > 1) Start a "File Access" with -performSynchronousFileAccessUsingBlock: or > -performAsynchronousFileAccessUsingBlock > 2) Create an NSFileCoordinator instance with the NSDocument as the > NSFilePresenter passed in the initializer. > 3) Using that NSFileCoordinator, take a coordinated read of the target file > 4) Inside the coordinated read: read the contents of the new file > (-revertToContentsOfURL:ofType:error: is probably the most correct here, as > it will update -fileURL, -fileModificationDate, -fileType, change counts, and > other internal state as necessary) Thanks! That seems to have worked. It *is* necessary to use -revertToContentsOfURL:ofType:error: rather than -readFromURL:ofType:error:. And it's necessary as you suggested to do this inside a "File Access" with an NSFileCoordinator. Simply using -revertToContentsOfURL:ofType:error: without these doesn't work. Thanks for your help. _______________________________________________ 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