我想让我的应用在卸载其他系统应用时做出反应(而不是我的应用)。是否有任何预期的Cocoa方法?如果没有,是否有可靠的(如果不是有意的话)这样做?
我确实有一个最有趣的观察列表,所以一个限于特定其他应用程序的解决方案很好,但一般解决方案会很棒。语言也不是一个问题; Objective-C和Swift是最简单的,但如果必须编写脚本,那也没关系。
答案 0 :(得分:2)
Mac应用程序并没有像其他系统那样“安装”。它们只是捆绑,用户可以从任何地方运行。
如果您要查看特定的.app文件名,可以设置NSMetadataQuery以观察对其的更改,并在用户将其移至回收站时收到通知。
答案 1 :(得分:1)
您可以使用-[NSWorkspace URLForApplicationWithBundleIdentifier:]
。或者LSCopyApplicationURLsForBundleIdentifier
,如果多个版本具有相同的包ID。但这可能是一种拉动式的实施,而不是基于通知的实施。
捆绑包标识符也可以与NSMetadataQuery
通过kMDItemCFBundleIdentifier
谓词一起使用。