我有一个安装代理的应用程序,我希望代理能够使用NSOpenPanel
访问应用程序中用户选择的文件。
在Mac OS Sandbox中执行此操作的最佳方法是什么?
答案 0 :(得分:1)
在用户登录时运行进程的推荐方法是使用SMLoginItemSetEnabled()。您可以通过将代理程序包放在主应用程序包(MainApp / Contents / Library / LoginItems / Agent)的登录项文件夹中来执行此操作。
然后,从OS X 10.7.4开始,可以使用application-groups entitlements,以便您的主应用程序和代理可以共享此权利,从而允许它执行IPC并共享对组容器的访问权限(〜/图书馆/集团容器/.
然后,当用户使用NSOpenPanel选择文件时,您可以要求UI将所选文件复制到组容器中,以便代理可以处理它们。
答案 1 :(得分:1)
10.7.5中不支持组容器,因为仅在10.8 +中支持containerURLForSecurityApplicationGroupIdentifier。