Leopard just arrived this morning (TNT messed up yesterday) and thus far I’m loving it. Time Machine is in the process of performing its initial backup, so I’ll reserve judgement on speed until later, but the UI feels extremely responsive even with the backup going on.
Anyway, to the point of this post. I’ve briefly looked over the new developer documentation and have uncovered the following gems:
NSGradient
Looks like CTGradient won’t be necessary anymore, as Apple has added an NSGradient class to AppKit. This move is extremely welcome if long overdue — creating gradients previously involved a whole mess of core graphics shading calls (or using CTGradient).
NSCollectionView
Renamed from NSGridView in the developer seeds, NSCollectionView has apparently “been added to facilitate interesting animations”. I would have said it’s been added to display a collection of objects, but motives aside, this is really great AppKit addition, allowing for straightforward creation of iPhoto-style grids of basically anything you want. Each item in the grid is (unsurprisingly) an NSCollectionViewItem, created from a prototype view containing anything that knows how to draw itself, for example, an NSImageView and an NSTextField combined together in an NSBox.
NSRuleEditor and NSPredicatedEditor
NSPredicateEditor is a pre-built “criteria-builder” for things like smart folders:
This ties into bindings and looks massively powerful.
HUD style windows
The head-up display style windows as found in iLife, iWork and now QuickLook are now a standard option of NSPanel, exposed in Interface Builder.
NSPathControl
Awesome. A standard control for showing file paths, probably powering the Finder’s “bread-crumb trail”:
NSToolbar enhancements
NSToolbars can now be edited directly in InterfaceBuilder!
NSSplitView enhancements
Loads of (overdue) improvements to NSSplitView, including divider-position-and-subview-collapse-autosave, the addition of -setDividerStyle: (for thick or thin dividers), programmatic subview collapse, easier double-click-view-collapse support, the ability to hide the divider when a subview is completely collapsed and a beautiful host of bug fixes.
Accessory views in NSAlert
NSAlert now supports the straightforward addition of a suppression checkbox (i.e. a “Do not show me this message again” option) and a -setAccessoryView: method for, surprisingly, adding an accessory view.
NSDockTile
-setBadgeLabel: and -setContentView: support for NSApplication AND NSWindow (for either the app or minimised windows)!
There is just so much new stuff, I can’t wait to get properly stuck in!