我有一个OS / iOS应用程序,它使用旧风格的无处不在的容器id TEAMID.com.companyname.product,是使用OS上的NSDocument和iOS上的UIDocument构建的。
使用内置的NSDocumentController openDocument:面板,文件打开在OSX10.8、10.9和10.10上运行良好。在10.10,这个面板被苹果扩展到允许iCloud驱动器访问。在面板的顶部,标题为“iCloud库”的选择器显示“Appname-iCloud”和“iCloud驱动器”作为选项。选择前者可以访问App容器中的文档,而后者则显示可用的iCloud驱动器文件夹。
在10.11ElCapitan中,选择“Appname- iCloud”-视图不会改变(您可以看到iCloud驱动器文件夹的顶层视图)。没有任何警告信息。在侧栏中选择iCloud下的Appname具有相同的结果。
考虑到应用程序的性质(数据是私有的,并且不是为任何其他应用程序所设计的),因此不太理想地将无处不在的文件夹公之于众--所以我不希望沿着这条路走下去。
主要的工作是在请求面板中搜索适当的文件类型(类别),并选择Search: This Mac --这很好,就像从前面打开的URL中保存的URL一样。因此,应用程序沙箱并没有造成问题。
显然,我希望10.10的行为能够继续下去--但不明显的是如何实现这个目标,或者它是否是一个bug。苹果可能认为,所有使用NSDocument构建的应用程序都希望将其应用程序容器公之于众。
发布于 2015-10-21 00:11:06
这个问题似乎是OSX10.11中的一个缺陷,并且标准的NSDocument文件打开/保存/移动面板无法强制进入旧的行为。然而,一个相当简单的解决方案是提供两个新的应用程序菜单项:
[NSDocument moveDocumentToUbiquityContainer:]迁移到iCloud。发布于 2015-11-02 02:45:02
您需要通过将以下内容添加到您的iCloud文件中,使应用程序info.plist容器公开。
<key>NSUbiquitousContainers</key>
<dict>
<key>HHWT75NS6T.au.com.ossh.appName</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>None</string>
</dict>
</dict>https://stackoverflow.com/questions/33026700
复制相似问题