NSDocument will open it on a background thread if you implement +canConcurrentlyReadDocumentsOfType: to return YES for that file type. All of the data is read in and the model prepared before any user interface (e.g. the document window) is created. If there’s a failure you’ll see an error alert.
There is no automatic provision for a progress dialog, so you’ll have to implement your own. Because there’s no document window until the read fully succeeds, this will need to be a modeless dialog rather than a sheet, because there’s no parent to attach it to. Since there could be more than one of these file opens going on asynchronously, you might want to consider a stacked progress design, but you have to do all that yourself. NSProgress is thread safe and might be useful for this. —Graham > On 31 Dec 2016, at 7:52 PM, Daryle Walker <dary...@mac.com> wrote: > > Let’s assume we’re using a NSDocument-based application. If we’re opening a > big file, like a gigabyte or more, does the system code automatically show a > progress bar dialog? Or does the user look at a whole bunch of nothing (i.e. > wondering if the app locked up)? > > If the latter, I guess we would (eventually) implement a opening progress > window ourselves. I’m thinking of a app-global window that contains a list. > Each list item corresponds to an object of a NSOperation subclass; where the > operation and list item have the same lifetime. The operation could have a > NSProgress object that the list item tracks. (Hopefully NSProgress is > sufficiently thread-safe.) Is that workable? Is there a better idea? _______________________________________________ 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