I have a (new in Lion) view-based NSOutlineView as Sidebar SourceList in my app using CoreData + NSTreeController + Bindings + NSOutlineView and an Object as NSOutlineViewDelega
In case it's not obvious to anyone:
You can set "Floats group rows" directly in Interface Builder.
select your Source List in Interface Builder's document outline.
show the Attributes Inspector, and you will find the "Floats Group Rows" checkbox. Untick it, and your nasty jumping group headings suddenly behave themselves :)
Alternatively, if you're in Swift, you can do something like:
@IBOutlet weak var sourceList: NSOutlineView!
sourceList.floatsGroupRows = false
Setting setFloatsGroupRows:NO for the outline view must solve the issue with first group item moving up-down when being expanded/collapsed.
You may also have a look at the answer of this question: NSOulineView header cell font The automatic style unselect-reselect dance worked for me.
I was wondering how you achieved the source list that's visible on the screenshot.
I have created a little sample project, which does the same and includes the feedback from @anton-ivanov:
Check out besi/mac-quickies on github. Most of the stuff is either done in IB or can be found in the AppDelegate