+3  A: 

The "outline table column" (see -[NSOutlineView outlineTableColumn]) is the NSTableColumn that draws the triangle and left padding as needed to display the hierarchy. The default cell for displaying table content is an NSTextFieldCell. To increase the spacing you see, you have to do the drawing in a custom NSTextFieldCell subclass. The spacing is achieved by drawing your image with an x offset. (The outline view will draw the disclosure triangle regardless of which NSCell subclass is used.)

Note that you may have to override the following methods to draw correctly when the cell can be typed in, selected for editing, and the tooltip:

By default your custom text rects will be ignored by the text field and these will draw oddly.

Jonathan Dann
Thanks, good suggestion. I found the idea to use NSBrowserCell on CocoaDev.com and hadn't considered this approach. Happily, a quick search turned up Apple's **ImageBackground** sample code http://developer.apple.com/mac/library/samplecode/ImageBackground/ and specifically the `ImageAndTextCell.m` file. It implements everything but the tooltip (which I don't need right now anyway) and handles some odd drawing behaviors I wouldn't have thought to account for. Jackpot, and hooray for code reuse!
Quinn Taylor
BTW, I added this finding to http://cocoadev.com/index.pl?IconAndTextInTableCell as well.
Quinn Taylor