How do you programmatically put folder icons on the Finder sidebar, given that you have to use a custom icon for the folder?

StackOverflow https://stackoverflow.com/questions/1062856

Question

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 make the folder icons show up using its assigned custom icon.

Can anyone point me to a link or a solution that would make me do this? Thanks a bunch in advance!

Was it helpful?

Solution

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.

OTHER TIPS

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];

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top