objective-c - 沙箱和保存文件

标签 objective-c macos cocoa sandbox nssavepanel

我知道沙盒的限制,并且我让用户保存文件的常用技术是通过NSSavePanel,它会自动授予应用程序对用户指示的位置的必要权限。

现在,这是......并不罕见的场景:

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

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

那么,有什么想法吗?

<小时/>

请注意:无论如何,该解决方案也必须在 10.6 上功能齐全。

<小时/>

更新: 嗯...这很奇怪(或者至少是意想不到的)。刚刚尝试在已通过 NSSavePanel 选择的先前位置重新保存,它似乎正在工作(不执行任何操作)。那可能吗? (是的,只需重新检查两次:该应用程序沙盒化)

最佳答案

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

关于objective-c - 沙箱和保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416165/

相关文章:

macos - 如何通过 Xcode UI 测试确定 ScrollView 中文本的哪一部分在屏幕上可见?

objective-c - cocos2d - 如何在 3d 中定向 CCSprite?

iphone - 用 Objective-C 以外的任何语言开发 iPhone 应用程序真的是可行的解决方案吗?

android - 尝试在Mac上的Android模拟器上运行NativeScript应用程序的Gradle错误

python - Pyomo 的 SolverFactory 无法创建 Ipopt (OSX) - 可能与 COIN-OR 有关

Python OS X 10.5 开发环境

objective-c - 向文本字段的 'left' 添加填充

objective-c - 如何以编程方式获取mac的存储容量?

c++ - 在 C++ 代码中返回 Obj-C block

ios - 如何仅在纵向中设置方向?