Re: cocoa-dev digest, Vol 2 #1021 - 15 msgs
Re: cocoa-dev digest, Vol 2 #1021 - 15 msgs
- Subject: Re: cocoa-dev digest, Vol 2 #1021 - 15 msgs
- From: Kirk Kerekes <email@hidden>
- Date: Tue, 30 Jul 2002 10:56:03 -0500
On Tuesday, July 30, 2002, at 04:53 AM, email@hidden
wrote:
Essentially, IB writes a description of all the objects in your
interface to the nib file, along with a description of the
connections between them. Then, when you ask NSBundle to load a nib,
the nib-loading mechanism looks through this description, and creates
all of the objects described. It also uses the Objective-C runtime
to set the instance variables in the objects it creates according to
what you specified in the IB inspector for each object.
While this is what appears to happen, there is a subtle and important
difference.
IB is not just ResEdit on steroids.
The objects in IB are not just representations of buttons, etc -- they are
actual freeze-dried objects. You can create your own object-items for IB --
and they work the same as the standard versions. Because of this, you can
create and distribute UI widgets as IB palette items without needing to
distribute source code or libraries -- just class interface files and
freeze-dried IB palette items.
Hillegass's _Cocoa Programming for Mac OS X_ includes an example that walks
you through the steps of creating a custom view definition and
"freeze-drying" it for use in an IB pallette. He points out that you could
take the entire first exercise in the book, (a random number generator with
a user interface) and reduce it to an IB palette item. This palette item is
_fully_functional_ inside of IB, because it _includes_your_compiled_code_.
Nearly any functionality can be packaged in this manner.
Note that this provides a lovely method of providing objective-c UI chunks
for AppleScript/Java programmers using IB.
Anyone in the business of creating semi-custom applications should look
seriously at this technology. Do you have a class that can download
financial information into a table? Make it an IB widget. A class that can
take a table and create a graph? Make it an IB widget.
IMHO, IB and freeze-dried objects are a logical extension of the
tool-oriented philosophy of Unix.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.