Aggiornamento per 2015
L'intestazione LSSharedFileList
dice che questo è stato spostato nel framework CoreServices. Infatti, se si Cmd-Shift-O (in Xcode) e si digita LSSharedFileList, quindi si passa all'unico risultato, nella barra di scorrimento si vedrà che l'intestazione è effettivamente contenuta in CoreServices.framework
. In ogni caso, la chiave è ancora kLSSharedFileListFavoriteItems
.
Esempio:
+ (BOOL)appendFavoriteItemWithURL:(NSURL *)url {
// Pessimism ...
BOOL result = NO;
// Do we have a file URL?
if (url.isFileURL) {
// Ask CoreServices for the favorite items list
// (kLSSharedFileListFavoriteItems)
LSSharedFileListRef list = LSSharedFileListCreate(NULL, kLSSharedFileListFavoriteItems, NULL);
if (list) {
// We've got the list, so try to append our item
// (use kLSSharedFileListItemBeforeFirst vs.
// kLSSharedFileListItemLast if desired)
LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(list,
kLSSharedFileListItemLast,
NULL,
NULL,
(__bridge CFURLRef)url,
NULL,
NULL);
// Did it work?
if (item) {
// Release the item and flag success
CFRelease(item);
result = YES;
}
// Release the list
CFRelease(list);
}
}
return result;
}
Usage:
// Create the path to the favorite item to add
NSString * itemPath = [@"~/Music" stringByExpandingTildeInPath];
NSURL * itemURL = [NSURL fileURLWithPath:itemPath];
// Insert the item
[WhateverClassTheAboveFunctionIsIn appendFavoriteItemWithURL:itemURL];
fonte
2015-06-23 15:37:30
Il modo in cui ha funzionato AppleScript 4 me. grazie – amitp
@amitp Ottimo! Immagino che possa selezionare la mia risposta come soluzione allora! :-) – Asmus