PDA

View Full Version : Getting a notification when a nib loads




ATG
Aug 6, 2006, 08:32 AM
I'm loading a nib with:
[NSBundle loadNibNamed:@"MyNib" owner:self];
How can I get an awakeFromNib style message when it finishes loading?

BTW awakeFromNib doesn't work



kainjow
Aug 6, 2006, 08:35 AM
awakeFromNib gets called from classes within the nib. You generally call loadNibNamed:owner: from within the class that's in the nib, not outside it.

ATG
Aug 6, 2006, 12:08 PM
Doesn't matter. I've figured out that it's not the secondary nib that's the problem but the document nib.

It seems that the - - (void)windowControllerDidLoadNib:(NSWindowController *) aController doesn't do what I says and not everything in the nib has completely loaded when it gets called.

I was trying to display a sheet to appear when a new document was created or opened (something like that anyway. I can't be bothered to explain fully :o).

I thought that if I put the [NSApp beginSheet: etc:] message in the windowControllerDidLoadNib method then the sheet would appear after the nib had loaded and it would 'stick' to the window. Why doesn't that work.

Anyway, I fixed it by putting it in a menu so the nib would of loaded by then anyway.

kpua
Aug 6, 2006, 12:12 PM
It appears from the documentation that the method blocks until the nib is loaded successfully (as opposed from delaying it somewhere in the run loop or a secondary thread) because it returns a BOOL that indicates whether the load was a success or not.