【发布时间】:2018-02-08 00:31:11
【问题描述】:
当您打开一个 XCode 项目时,它会自动写入相应 .xcodeproj 文件的封闭文件夹。
在沙盒应用程序中,您只能写入已打开的文件,或写入已使用NSOpenPanel 打开的目录。
我想要实现的是与 XCode 相同的功能;我的应用程序创建了一个项目文件(类似于.xcodeproj 文件的文档),该文件保存到用户选择的目录中,并在该目录中创建与该项目文件相关的其他文件。但是,如果在终止应用程序后重新打开文件,我最终会失去写入封闭目录的权限。
我看到书签是一种选择,但它们不提供相同的功能。如果将项目文件移动到新目录,则继续写入旧目录是没有意义的,我必须向用户询问写入新目录的权限。我不觉得这个用户友好。绝对没有办法解决这个问题吗?
【问题讨论】:
-
相关文档为here。我曾考虑将捆绑包用作文档(“项目”)文件,但捆绑包中的文件应该易于用户访问,因此捆绑包再次对用户不友好。
-
“解决这个问题”我什至不明白是什么问题。
-
打开我的应用程序创建的文档文件时,我无权写入封闭目录。如果你打开一个
.xcodeproj文件,XCode 显然可以写入封闭目录。我想要那个功能,而不是向用户征求许可。 -
“如果你打开一个 .xcodeproj 文件,XCode 显然可以写入封闭目录。我想要那个功能......”我不知道你是怎么打开的。如果您说的是通过双击打开文件,您可以这样做。
-
.xcodeproj文件的封闭目录包含带有源代码文件的子目录。 XCode 可以在不需要许可的情况下访问那些;您只需双击.xcodeproj文件,XCode 允许您编辑与.xcodeproj文件位于同一目录中的任何源文件。这种功能是我想要的应用程序的那种功能,但是沙盒应用程序仅有权写入用户指向的那些文件/目录,而不是驻留在同一目录中的任何文件/目录,所以它似乎是不可能。
标签: objective-c macos cocoa sandbox nsdocument