Skip navigation.
 
mlRe: Bypassing Interface Builder
FROM : Boyd Collier
DATE : Wed May 14 19:34:25 2008

Andy,

Just wanted to congratulate you for your exceptionally clear and 
succinct summary.  If I'd had it when I first started using Interface 
Builder, it would have saved me a lot of head scratching (and 
occasional head-banging).

Boyd



On May 14, 2008, at 9:37 AM, Andy Lee wrote:

> On May 14, 2008, at 11:35 AM, colo wrote:

>> Hmmm. The letting it create the files in the nib file sounds fine for
>> me. But what about the linking and configuring? It's just all
>> reflected in code correct? The dragging a pipe to one object to the
>> other that just all shows up in the .m right?

>
> No.  Nothing you do in Interface Builder modifies a .m.
>
> A nib file contains descriptions of a set of objects:
>
> (1a) what class each object is an instance of,
> (1b) values for each object's attributes, and
> (1c) how the objects connect to each other (through instance 
> variables called outlets).
>
> When you edit a nib file in IB, you're specifying:
>
> (2a) what objects should be in the nib (by dragging them from a 
> palette that lists the classes you want),
> (2b) what values their attributes should have (by entering values in 
> an inspector), and
> (2c) how they connect to each other (by control-dragging between 
> them and selecting which outlet of the from-object you want the to-
> object to be).
>
> When your application *loads* a nib, it:
>
> (3a) instantiates the objects,
> (3b) sets their attributes, and
> (3c) connects them both to each other and to certain things in your 
> application (in particular, File's Owner, which you should 
> definitely understand).
>
> As others have explained, IB does not generate code to do (3a), 
> (3b), and (3c).  That's all taken care of by the Cocoa framework 
> code that loads the nib file.
>
> There *is* a connection between your code and your nib, but it's in 
> the other direction.  If you edit the outlets in the .h file for one 
> of your classes (outlets are designated with the IBOutlet keyword), 
> the nib file will update its understanding of the structure of that 
> class.
>
> The "behind the scenes" of (3a), (3b), and (3c) are documented and 
> worth understanding; they touch on topics including init methods, 
> KVC, and the responder chain respectively.  To be honest I can't 
> recite all the details offhand (like the exact rules for which init 
> method gets called), but I'm aware of the situations in which I 
> should refer to the documentation.
>
> --Andy
>
> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> 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/<email_removed>
>
> This email sent to <email_removed>
>

Related mailsAuthorDate
mlBypassing Interface Builder colo May 14, 16:36
mlRe: Bypassing Interface Builder I. Savant May 14, 17:11
mlRe: Bypassing Interface Builder colo May 14, 17:35
mlRe: Bypassing Interface Builder I. Savant May 14, 17:43
mlRe: Bypassing Interface Builder Andy Lee May 14, 17:50
mlRe: Bypassing Interface Builder colo May 14, 17:53
mlRe: Bypassing Interface Builder I. Savant May 14, 17:58
mlRe: Bypassing Interface Builder David Wilson May 14, 17:59
mlRe: Bypassing Interface Builder I. Savant May 14, 18:01
mlRe: Bypassing Interface Builder I. Savant May 14, 18:05
mlRe: Bypassing Interface Builder Gregory Weston May 14, 18:06
mlRe: Bypassing Interface Builder glenn andreas May 14, 18:13
mlRe: Bypassing Interface Builder Wayne Packard May 14, 18:26
mlRe: Bypassing Interface Builder Andy Lee May 14, 18:37
mlRe: Bypassing Interface Builder Stefan Werner May 14, 18:46
mlRe: Bypassing Interface Builder Bill Bumgarner May 14, 19:00
mlRe: Bypassing Interface Builder Boyd Collier May 14, 19:34
mlRe: Bypassing Interface Builder colo May 14, 19:37
mlRe: Bypassing Interface Builder Julius Guzy May 14, 22:05
mlRe: Bypassing Interface Builder Torsten Curdt May 14, 22:49
mlRe: Bypassing Interface Builder colo May 15, 00:53
mlRe: Bypassing Interface Builder Graham Cox May 15, 01:26
mlRe: Bypassing Interface Builder Graham Cox May 15, 01:41
mlRe: Bypassing Interface Builder colo May 15, 02:14
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 02:15
mlRe: Bypassing Interface Builder Graham Cox May 15, 02:29
mlRe: Bypassing Interface Builder I. Savant May 15, 02:43
mlRe: Bypassing Interface Builder Graham Cox May 15, 02:45
mlRe: Bypassing Interface Builder I. Savant May 15, 02:51
mlRe: Bypassing Interface Builder I. Savant May 15, 02:54
mlRe: Bypassing Interface Builder Andy Lee May 15, 03:02
mlRe: Bypassing Interface Builder Graham Cox May 15, 03:02
mlRe: Bypassing Interface Builder Andy Lee May 15, 03:06
mlRe: Bypassing Interface Builder I. Savant May 15, 03:07
mlRe: Bypassing Interface Builder Andy Lee May 15, 03:08
mlRe: Bypassing Interface Builder I. Savant May 15, 03:09
mlRe: Bypassing Interface Builder I. Savant May 15, 03:15
mlRe: Bypassing Interface Builder Andy Lee May 15, 03:29
mlRe: Bypassing Interface Builder Julius Guzy May 15, 03:35
mlRe: Bypassing Interface Builder I. Savant May 15, 03:37
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 04:33
mlRe: Bypassing Interface Builder Julius Guzy May 15, 04:36
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 04:54
mlRe: Bypassing Interface Builder Graham Cox May 15, 05:43
mlRe: Bypassing Interface Builder Uli Kusterer May 15, 07:50
mlRe: Bypassing Interface Builder Uli Kusterer May 15, 07:55
mlRe: Bypassing Interface Builder Uli Kusterer May 15, 08:15
mlcocoa mentoring (was Re: Bypassing Interface Builder) Torsten Curdt May 15, 15:36
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Paul Bruneau May 15, 15:47
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Uli Kusterer May 15, 16:08
mlcocoaheads frankfurt (was Re: cocoa mentoring) Torsten Curdt May 15, 16:44
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Torsten Curdt May 15, 16:51
mlRe: Bypassing Interface Builder Andy Lee May 15, 17:11
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 18:40
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Dennis Munsie May 15, 19:34
mlRe: Bypassing Interface Builder Paul Sargent May 15, 20:07
mlRe: Bypassing Interface Builder Uli Kusterer May 15, 20:48
mlRe: Bypassing Interface Builder Shawn Erickson May 15, 22:20
mlRe: Bypassing Interface Builder Shawn Erickson May 15, 22:30
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 22:32
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Torsten Curdt May 15, 23:03