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

后端 未结 3 753
醉酒成梦
醉酒成梦 2020-12-09 00:36

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

相关标签:
3条回答
  • 2020-12-09 01:12

    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.

    0 讨论(0)
  • 2020-12-09 01:20

    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.

    0 讨论(0)
  • 2020-12-09 01:21

    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];
    
    0 讨论(0)
提交回复
热议问题