I am trying to add a new item to the Finder Sidebar Favorites kLSSharedFileListFavoriteItems list. The API for doing this, LSSharedFileListInsertItemURL, is not working for me. The Sidebar folder is created, but with a generic folder icon and the name taken from the target folder instead of the supplied display name. Can anyone see the error in the code below? All the API calls are returning noErr or other success codes; there is no error report.
The app is not Sandboxed. Running on OS X 10.7.5. Thanks if you can help, -- Ben + (BOOL) createSidebarFavoritesIcon:(NSString *)targetPath displayName:(NSString *)name icon:(NSString *)iconPath { BOOL success = NO; NSURL *folderURL = [NSURL fileURLWithPath:targetPath]; IconRef iconRef = NULL; if (iconPath != nil) { NSURL *iconURL = [NSURL fileURLWithPath:iconPath]; FSRef iconFSRef; CFURLGetFSRef((CFURLRef)iconURL, &iconFSRef); OSStatus status = RegisterIconRefFromFSRef('MYAP', 'SFAV', &iconFSRef, &iconRef); if (status != noErr) { NSLog(@"%s: RegisterIconRefFromFSRef failed, error code %d", __FUNCTION__, (int)status); } } // Create a reference to the shared file list. LSSharedFileListRef favoritesList = LSSharedFileListCreate(kCFAllocatorDefault, kLSSharedFileListFavoriteItems, NULL); if (favoritesList != NULL) { LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(favoritesList, kLSSharedFileListItemLast, (CFStringRef)name, // inDisplayName -- defaults to the folder name iconRef, (CFURLRef)folderURL, NULL, // inPropertiesToSet NULL // inPropertiesToClear ); if (item != NULL) { success = YES; CFRelease(item); } CFRelease(favoritesList); } return success; } _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com