沙箱和保存文件

时间:2013-08-24 07:29:14

标签: objective-c macos cocoa sandbox nssavepanel

我了解Sandbox的限制,而且我通常使用户保存文件的方法是NSSavePanel,它会自动向应用程序授予应用程序必要的权限,如用户所示。

现在,这是......不那么罕见的情景:

  • 用户在我的应用中创建一个新文件
  • 第一次保存(因此,NSSavePanel出现的原因很充分)
  • 然后编辑文档的内容(请注意,我的应用是典型的NSDocument - 兼容的)
  • 最后他想重新保存。 (不是“保存(它)为......”而只是......“保存(它)” - 因为他已经指定了一个位置,对吗?

这怎么可行?实现这一目标的“获批”方式是什么?我读过书签,但a)我不确定它是否是我需要的,b)我没有找到任何真正的代码示例。

那么,有什么想法吗?


请注意:无论如何,解决方案也必须完全适用于10.6。


更新:嗯......这很奇怪(或者至少是意料之外的)。刚尝试通过NSSavePanel已经选择的先前位置重新保存,它似乎正在工作(没有做任何事情)。那可能吗? (是的,只是重新检查了两次:应用程序沙箱)

1 个答案:

答案 0 :(得分:1)

您提供了自己的答案 - “自动向应用授予应用程序必要的权限,如用户所示” - 当用户在文件面板中选择文件时,沙箱已扩展要包含所选位置以及当前执行的其余部分,您的应用我可以访问它。