LSSharedFileListInsertItemURL で問題が発生しています。Finder のサイドバーに項目を追加しようとしていますが、うまくいきます。サイドバーのアイテムの名前を変更することはできません。「FolderName」を引数としてプッシュしていますが、この関数を実行した後、アイテムの名前は変更されません。名前とともに一瞬点滅しますが、すぐに実際の名前に戻ります。これに対する解決策を見つけるためにできる限り検索しましたが、何も思いつきませんでした。誰かが私のコードに問題を見つけたり、これを機能させるための「ハック」を持っている場合は、私に知らせてください。
-(void) addPathToSharedItem:(NSString *)path
{
CFURLRef url = (__bridge CFURLRef)[NSURL fileURLWithPath:path];
// Create a reference to the shared file list.
LSSharedFileListRef favoriteItems = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteItems, NULL);
if (favoriteItems) {
//Insert an item to the list.
CFStringRef mdcName = CFSTR("FolderName");
LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(favoriteItems, kLSSharedFileListItemLast, mdcName, NULL, url, NULL, NULL);
if (item){
CFRelease(item);
}
}
CFRelease(favoriteItems);
}