On May 27, 2008, at 11:51 AM, Mike Abdullah wrote:
On 27 May 2008, at 15:06, Andy Lee wrote:

On May 27, 2008, at 9:52 AM, Kyle Sluder wrote:
On Tue, May 27, 2008 at 8:48 AM, Andy Lee <[EMAIL PROTECTED]> wrote:
I just noticed +loadNibNamed:owner: is actually in a category of NSBundle
added by AppKit.  So I'd amend the above as follows: -[NSObject
loadNibNamed:] would be added to NSObject by a category in AppKit, and would be documented on a page with a title like "Application Kit Extensions".

Woah... so sending NSBundle a -loadNibNamed: message would make the
NSBundle the File's Owner of the NIB? Who would you send the message
to?  This seems like a bad idea.

You would send the message to the object you want to be the File's Owner.

Instead of:

BOOL didLoad = [NSBundle loadNibNamed:@"MyNib" owner:myObject];

...you would say:

BOOL didLoad = [myObject loadNibNamed:@"MyNib"];

...thus leaving out any mention of bundles as an implementation detail. It would then be correct to say that the File's Owner would be the object that loaded the nib.

And then how would you know where to find the nib in question? :)

I guess I am reinforcing the argument that one needs code samples to express oneself. :)

You can add -loadNibNamed: to NSObject yourself, right now:


- (BOOL)loadNibNamed:(NSString *)aNibName
{
   return [NSBundle loadNibNamed:aNibName owner:self];
}


This would use the logic that +loadNibNamed:owner: uses for deciding what bundle to look for the nib in (see the docs for the method). If you want more control over what bundle is used, you could write an NSObject method that wraps around -[NSBundle loadNibFile:externalNameTable:withZone:]. I leave that as an exercise for the reader.

--Andy

_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to