【发布时间】:2018-01-31 03:12:26
【问题描述】:
我的情况有些特殊,虽然我了解问题所在,但我不太确定最好的解决方法是什么,所以我想我会咨询蜂巢思维。 :)
场景:
我正在开发一个基于文档并使用 Quicktime 的应用程序 (OS X)。创建新文档时,用户在文档窗口中选择要观看的电影。然后用户可以保存该文档。当用户稍后尝试打开文档时,什么也没有发生。就是打不开。
到目前为止我所知道的:
问题在于沙盒的运行方式,以及我使用它的有限经验(我的第一次尝试。)我已启用沙盒并将应用权限设置为允许任何用户启动的文件操作,并为应用添加了权限访问电影文件夹。
当用户加载文档并且电影位于电影文件夹中时,它会打开并正常工作。但是,如果电影位于用户驱动器上的其他任何位置,则它不会按上述方式工作和执行。
我意识到这是因为虽然用户可以打开文档(用户启动),但当它尝试自动打开链接的电影(不是用户启动)时,沙盒会阻止应用程序,除非该电影位于 Movies 文件夹中。
由于该应用程序设计用于处理大文件,因此强制用户将文件复制到他们的电影文件夹并保留在那里似乎是一个很大的限制。
(我还没有尝试使用位于外部驱动器上的电影,但怀疑它可以工作,因为它不是系统驱动器。)
问题:
有没有办法解决这个问题,因为用户最初启动了打开电影的任务?
如果没有,是否有办法让应用程序要求用户确认是否应该加载电影...也许就像显示一个已选择电影的“打开”对话框,以便他们可以单击“确定”?这可能是最好的解决方案。
另一种选择可能是在用户最初选择电影时自动将电影复制到 Movies 文件夹中,但对于我的情况来说,这并不是真正的想法......
任何想法将不胜感激!
【问题讨论】:
标签: macos quicktime appstore-sandbox nsopenpanel