Программно добавить папку в Places в Finder

Я пытаюсь понять, как программно добавить папку на боковую панель Finder Places. Я видел способы изменить его через настройки Finder, но я также видел, что некоторые приложения фактически добавляют папки на боковую панель.

Если у кого-то есть какие-либо советы / указатели на то, что я должен искать, это было бы очень признательно

(Это для Snow Leopard и Leopard... надеюсь, ничего не изменилось)


person mystro    schedule 19.08.2010    source источник
comment
Похоже, что об этом недавно спросили и ответили: stackoverflow.com/ вопросы/4852516/добавить-место-в-поиск-сайдбар   -  person Heikki Toivonen    schedule 03.02.2011


Ответы (1)


Попробуй это:

-(void) addPathToSharedItem:(NSString *)path
{
    CFURLRef url = (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.
        LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(favoriteItems,
                                                                     kLSSharedFileListItemLast, NULL, NULL,
                                                                     url, NULL, NULL);
        if (item){
            CFRelease(item);
        }
    }   

    CFRelease(favoriteItems);
}
person mself    schedule 09.10.2011
comment
как это сделать в песочнице? выше не работает, и у меня работает только хак для прямой записи в эту папку: D - person Daij-Djan; 08.11.2012
comment
Я пытался, но это сработало только тогда, когда режим песочницы отключен.. (:(: кто-нибудь знает, как добавить папку в избранное в режиме песочницы..? - person nitin kachhadiya; 04.04.2015
comment
Это устарело в MAC OS 10.11. Любая идея о поддерживаемых API на ElCapitan. - person Lakshmi; 02.12.2015
comment
@LakshmiS ты придумал, что использовать вместо этого? я в похожей лодке - person Ben J; 22.04.2016
comment
@Ben, хотя упомянутый здесь код устарел, он отлично работает и в ОС 10.12.x. Я получаю доступ к приведенному выше коду в блоке try-catch на более безопасной стороне. - person Lakshmi; 10.05.2017