Am currently working on a project, and though I can add sidebar items by adding to the com.apple.sidebarlists.plist file then restarting Finder, I can\'t seem to know how to
There's no supported way to do this using pure Cocoa. Use the LSSharedFileList API, instead. It's the supported way to manage the sidebar lists, and you can provide a custom icon (as an IconRef from Icon Services) when you insert an item.
I was too stubborn to not do the obvious. I did:
[[NSWokspace sharedWorkspace] setIcon:someIcon forFile:someFile options:0];
to set the image icon for the folder. I from then I did com.apple.sidebarlists.plist
NSUserDefaults
appending, and restarted Finder through Apple Events. That made it all work.
I don't know about the icons but I add items to the sidebar using the EBLaunchServices
wrapper which is available open source here:
https://github.com/Eric-Bro/EBLaunchServices
It is very easy to use. For instance to add a mounted OSXFUSE volume to the sidebar you call:
NSURL* volumeUrl = [NSURL fileURLWithPath:@"/Volumes/MyVolume"];
[EBLaunchServices addItemWithURL:volumeUrl toList:kLSSharedFileListFavoriteVolumes];