I totally dig Cocoa—you’ve probably guessed that by now.
But there are some times when it can be infuriating. If you’re using the built-in controls and customizing them just a little bit, then it’s totally cool.
But then there are times when no amount of customizing will do: to get what you want you have to go back to square one, you have to subclass NSView and go from there.
An example of that is OmniOutliner. I recall reading that it’s a complete re-implementation of NSOutlineView. (Please correct me if I’m wrong.)
They had to do that because, if I remember right, to get things like wrapping headlines it was necessary to start over: no amount of tweaking NSOutlineView was going to do the job. (Or at least not well.)
Some of the upcoming features in NetNewsWire Pro are sending me down the same path. For example, I want to do a table view like Jason Kottke’s mockup—but, because it has table cells of varying heights, I’m having to go back to square one, do my own NSView subclass.
Here’s hoping that the built-in controls get more powerful and flexible in the future.
(Note: I’m only pretending to complain. I love UI programming, so it’s not really the bummer I make it sound like.)