Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

ATG

macrumors regular
Original poster
Aug 7, 2005
187
0
I'm loading a nib with:
Code:
[NSBundle loadNibNamed:@"MyNib" owner:self];
How can I get an awakeFromNib style message when it finishes loading?

BTW awakeFromNib doesn't work
 
awakeFromNib gets called from classes within the nib. You generally call loadNibNamed:eek:wner: from within the class that's in the nib, not outside it.
 
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
Code:
- - (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 :eek:).

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.
 
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.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.