Objective-c is learn-able; Cocoa is learn-able; I find Interface Builder and its descendant Xcode 4 to be completely inscrutable! There is no text (as the equivalent of C or Obj
To establish the bindings described in the awakeFromNib comments:
The referencing bindings section of the connections inspector shows you all the bindings that have already been established through the selected controller. So if you select the TableArray and navigate to the connections inspector, you'll now see "arrangedObjects.firstName" -> Value, Table Column - First Name. This is showing you the binding you just established above.
Before diving into a more advanced topic like Cocoa Bindings, it might be worthwhile to get comfortable working with Interface Builder. Use it to create IBOutlet and IBAction connections, both natively within IB and between IB and source code. Get used to using the inspectors to modify attributes of the UI objects, etc. Once you're comfortable with the general workflow of IB, tackling bindings will be easier. Here's a guide to help.
The by-now-integrated Interface builder part of Xcode 4 is not that different from the old Interface Builder, as far as the underlying concepts are concerned.
Download XCode 3 which is still available in the Apple website, and follow the tutorials available online.
Or somebody more helpful than me in SO might write a nice tutorial using Xcode 4...
That said, let me try explaining you a few things. (But I really do recommend using Xcode 3 for you at this point. I'm not saying Xcode 3 is intrinsically better; I'm just saying Xcode 3 has more tutorials so that you can get the concept more easily, which can then be used with Xcode 4.)
A nib/xib file contains archived objects in it. In the Interface Builder (whether stand-alone or unified into Xcode) creates the nib/xib file by creating live objects, which are then freeze-dried into archived objects when the file is saved. TableArray
is an instance created inside the nib file. You can drag a generic object from the object library to a nib and change its class to anything you want. That's how the object is created.
You don't create referencing bindings. Binding has a direction, from an object A to another object B. You set bindings on the side of A (in this case, an NSTableColumn
). Referencing bindings just show these info on the side of B. So, select the table view columns in the IB and set the bindings there.
That's done on the binding pane of the NSTableColumn
.