> On Aug 27, 2014, at 8:43 AM, edward taffel <etaf...@me.com> wrote:
> 
> 
>> On Aug 27, 2014, at 11:30 AM, Matthew LeRoy <mle...@minitab.com> 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 (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

Reply via email to