Вы можете положить вещи в корзину с помощью NSWorkspace , однако удаление корзины для программ является своего рода нет, поэтому вы не найдете API. Поэтому лучше всего использовать ScriptBridge.
Добавьте ScriptingBridge.framework
к своей цели сборки и создайте файл заголовка для Finder, используя:
sdef /System/Library/CoreServices/Finder.app/ | sdp -fh --basename Finder
Затем вы можете попросить Finder предложить пользователю очистить корзину:
#import "Finder.h"
FinderApplication *finder = [SBApplication applicationWithBundleIdentifier:@"com.apple.Finder"];
// activate finder
[finder activate];
// wait a moment (activate is not instant), then present alert message
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[finder emptySecurity:security];
});
Подробнее см. Документацию Scripting Bridge .
Начиная с Xcode 7.3, если вы попытаетесь сделать это с помощью Swift, вы получите ошибки компоновщика, пытаясь найти классы, определенные в Finder.h. Так что вам придется создать оболочку Objective-C.