Re: Prompting user (NSAlert) during document reading
Re: Prompting user (NSAlert) during document reading
- Subject: Re: Prompting user (NSAlert) during document reading
- From: Kyle Sluder <email@hidden>
- Date: Wed, 27 Aug 2014 09:32:47 -0700
> On Aug 27, 2014, at 8:43 AM, edward taffel <email@hidden> wrote:
>
>
>> On Aug 27, 2014, at 11:30 AM, Matthew LeRoy <email@hidden> wrote:
>> This seems to work in initial testing — the alert displays — but I get a message in the console telling me that “NSAlert is being used from a background thread, which is not safe. This is probably going to crash sometimes. …” Presumably this is because I have overridden +canConcurrentlyReadDocumentsOfType: to return YES for my documents, resulting in document reading happening on a background thread. Changing +canConcurrentlyReadDocumentsOfType: to return NO makes the warning message go away.
>
> i had this problem too: you can show the alert on the main thread via e.g. performSelectorOnMainThread. (as was kindly pointed out to me by, if i remember correctly, graham cox).
I would not advise this. The main thread may itself be blocked due to waiting on your document via -performSychronousFileAccesdUsingBlock:.
Matthew, could you perhaps perform automatic conversion, mark the document as untitled, and display a notice about automatic conversion once the document has been asked to -showWindows? This is the strategy I’ve suggested implementing in our own apps in the future.
Something like:
- initWithContentsOfURL:… {
self = [super initWithContentsOfURL:…];
if (_autoConverted)
[self setDraft:YES];
return self;
}
- showWindows {
[super showWindows];
if (_autoConverted) {
NSAlert *autoConversionAlert = …;
NSWindow *docWindow = self.windowControllers[0].window;
[alert beginSheetModalForWindow:window completionHandler:…];
}
--Kyle Sluder
_______________________________________________
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