你可以把东西放在垃圾桶与NSWorkspace,但是删除垃圾是怎么样的一种没有没有为程序,这样你就不会找到一个API。所以你最好的选择是使用ScriptBridge。
添加ScriptingBridge.framework
到您的构建目标,并使用生成的用于取景头文件:
sdef /System/Library/CoreServices/Finder.app/ | sdp -fh --basename 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 documentation了解更多详情。
作为的Xcode 7.3,如果你试图用这个斯威夫特你会得到链接错误,试图找到Finder.h定义的类。所以你必须创建一个Objective-C包装器。
为什么你需要这样做?垃圾箱是用户的领域,你的应用程序不应该真的搞乱它。 – 2011-03-17 11:15:47