• 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: Programmatically Open NSDocument Based Window.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Programmatically Open NSDocument Based Window.


  • Subject: Re: Programmatically Open NSDocument Based Window.
  • From: Quincey Morris <email@hidden>
  • Date: Thu, 27 Jan 2011 12:24:26 -0800

On Jan 27, 2011, at 05:54, Bruce Cresanta wrote:

> 	I am trying to open an NSDocument based window.    My NSDocument class follows the standard (MyDocument) class created using the automatic project settings.   I do initialization in the awakeFromNib override within MyDocument.
>
> To create the document I use:
>
> id myDocument = [[NSDocumentController sharedDocumentController] makeUntitledDocumentOfType:@"DocumentType" error:&error];
>
> The awakeFromNib initializations ARE SKIPPED in this call.
>
>
> Does anyone know a way to initialize NSDocument other than in awakeFromNib (I have nib related bindings)?
>
> or
>
> Does anyone know a way to instantiate the NSDocument such that awakeFromNib is called?

An object will receive an 'awakeFromNib' message if it's unarchived from a NIB file (e.g. views, controls), *or* if it's the File's Owner object for a loaded NIB file. My guess is that your project either has the window in MainMenu.nib, or in a separate file with a NSWindowController as File's Owner. In neither case will 'awakeFromNib' be called for the document.

You can read about this in:

	http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Protocols/NSNibAwaking_Protocol/Reference/Reference.html

though I guess it's slightly incomplete. It talks about 'awakeFromNib' being called for File's Owner, and it also talks about 'awakeFromNib' being called for objects in the NIB file, but that usually *doesn't* include File's Owner. That inconsistency looks like a small doc bug.

Initializations specific to a document are typically done in 'readFrom...' (opening an existing document) or 'initWithType:' (creating a new document). If you have things to do after NIB loading, you're really talking about something window-related, so you might need to move them to a window controller's 'awakeFromNib' -- or, more likely, 'windowDidLoad' -- or fix a misconfiguration in your NIB.


_______________________________________________

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

References: 
 >Programmatically Open NSDocument Based Window. (From: Bruce Cresanta <email@hidden>)

  • Prev by Date: Re: Crash in NSPersistentDocument writeToURL:ofType:forSaveOperation:originalContentsURL:error:
  • Next by Date: Re: Image preview with UIWebView
  • Previous by thread: Re: Programmatically Open NSDocument Based Window.
  • Next by thread: UITableView: Delay select recognition
  • Index(es):
    • Date
    • Thread