• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Document being reopened on launch during modal dialog
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Document being reopened on launch during modal dialog


  • Subject: Re: Document being reopened on launch during modal dialog
  • From: Quincey Morris <email@hidden>
  • Date: Tue, 06 May 2014 11:44:42 -0700

On May 6, 2014, at 11:23 , Mills, Steve <email@hidden> wrote:

> I'm looking at a crash log for our app that shows our app is initting. During init ([NSApplication finishLaunching]) we discover a problem and put up a modal dialog using [NSApplication runModalForWindow:]. During this modal run loop, something has decided that it would be a great time to handle the reopen event, so [NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:] is called and we open a document while the modal dialog is up, and before we've totally finished handling [NSApplication finishLaunching].

It sounds like you’re Doing It Wrong™. Well, sorta j/k, but seriously you’re overriding ‘finishLaunching’?

From the NSApplicationDelegate protocol documentation:

> "applicationDidFinishLaunching:
>
> "Delegates can implement this method to perform further initialization. This method is called after the application’s main run loop has been started but before it has processed any events. If the application was launched by the user opening a file, the delegate’s application:openFile: method is called before this method. If you want to perform initialization before any files are opened, implement the applicationWillFinishLaunching: method in your delegate, which is called before application:openFile:.)”

So documents may be opened between the issuing of the two notifications (wiil/didFinishLaunching). Both of those notifications, I would assume, are posted in ‘finishLaunching’, so your concept of “totally finished handling [NSApplication finishLaunching]” sounds flawed. In particular, putting up a modal dialog before invoking [super finishLaunching] — if that’s what you do — sounds like a bad idea.

Why aren’t you doing the initialization in the delegate methods?

_______________________________________________

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


  • Follow-Ups:
    • Re: Document being reopened on launch during modal dialog
      • From: "Mills, Steve" <email@hidden>
References: 
 >Document being reopened on launch during modal dialog (From: "Mills, Steve" <email@hidden>)

  • Prev by Date: Document being reopened on launch during modal dialog
  • Next by Date: Re: Document being reopened on launch during modal dialog
  • Previous by thread: Document being reopened on launch during modal dialog
  • Next by thread: Re: Document being reopened on launch during modal dialog
  • Index(es):
    • Date
    • Thread