Search code examples
macoscocoainterface-buildercore-animationosx-lion

View-Based NSOutlineView drag/drop highlighting incorrect


I'm migrating my app from the cell-based NSOutlineView to the view-based one. I'm mostly switched over now, but I'm having an issue with the way the highlight is drawn when dropping an object onto a row.

The standard system-wide highlight looks like so (from NetNewsWire):

NetNewsWire selection

My highlights look mostly the same, but crucially, without the dark blue border:

My own app's selection

It looks naked without that, and I couldn't find any properties that I had toggled incorrectly. I'm using a custom subclass of NSOutlineView, whose only override is -frameOfOutlineCellAtRow:. I didn't customize the attributes of the outline view (or its cell views) in IB.


Solution

  • I solved this issue by making a simple test app, which I noticed behaved correctly. I compared the outline view in IB pane by pane until I spotted the difference. In the "View Effects" inspector, I had the backing layer turned on (under the Core Animation Layer section) going all the way up the stack. I unchecked all those boxes, and I get the proper highlight, and it also still animates correctly.