Actualización para 2015
El encabezado LSSharedFileList
dice que esto se ha movido al marco CoreServices. De hecho, si usa Cmd-Shift-O (en Xcode) y escribe LSSharedFileList, navegue hasta el único resultado, verá en la barra de salto que el encabezado ahora está contenido en CoreServices.framework
. En cualquier caso, la clave sigue siendo kLSSharedFileListFavoriteItems
.
Ejemplo:
+ (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;
}
Uso:
// Create the path to the favorite item to add
NSString * itemPath = [@"~/Music" stringByExpandingTildeInPath];
NSURL * itemURL = [NSURL fileURLWithPath:itemPath];
// Insert the item
[WhateverClassTheAboveFunctionIsIn appendFavoriteItemWithURL:itemURL];
La forma applescript trabajó 4 mí. thx – amitp
@amitp ¡Genial! ¡Supongo que podría seleccionar mi respuesta como solución entonces! :-) – Asmus