我需要检测我的应用程序是否是为了响应用户双击文件或Spotlight
而启动的。如果通过Spotlight
(或双击应用程序图标)调用并且没有要打开的输入文件,我必须做一些额外的事情。我无法访问NSApplicationDelegate
对象,因此无法在applicaion:openFile(s):
上设置标记。在任何情况下,我都无法无限期地检查这些回调是否已经发生。有什么方法可以从代码中的任意点查询启动方法吗?
答案 0 :(得分:0)
当您双击某个应用程序的相关文件时,该应用程序将通过调用Apple Launch Services从Finder启动,并调用LSOpenURLsWithRole函数。< / p>
Spotlight很可能也使用Launch Services或直接调用Finder,所以我认为答案是否定的,你不能区分通过Finder或Spotlight启动。
也许如果你详细说明你想要实现的目标以及为什么需要区分它们,可能还有另一种解决问题的方法。