• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: cocoa-dev digest, Vol 2 #1021 - 15 msgs
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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.
  • Prev by Date: Re: What's the best way saving a string into PDF?
  • Next by Date: Re: Changing the shape of NSButton
  • Previous by thread: Writing an object as an NSData
  • Next by thread: Favorite Fonts
  • Index(es):
    • Date
    • Thread