我正在尝试将bundle文档类型实现到我的应用程序中。然而,经过一些研究后,似乎NSDocument不适合我想要做的事情。本质上,我希望能够读取和编写捆绑包并以模块化方式使用它们。我认为我不能使用NSDocument的原因是它似乎想为每个打开的包创建一个窗口,这是不可能的,因为我可能有十几个。
我已经尝试手动完成但是除了Apple Docs中的几句话之外我找不到任何文档,这些文章说要用NSFileManager创建一个文件夹。当我创建一个带扩展名的文件夹时,例如'.xyz',没有任何反应。我读到了统一类型标识符,但我似乎无法找到如何设置文件/文件夹UTI。这是我的Info.plist中的文档定义:
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>xyz</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>icon_128x128.png</string>
<key>CFBundleTypeName</key>
<string>Test Bundle</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>com.test.xyz</string>
</array>
<key>LSTypeIsPackage</key>
<integer>1</integer>
</dict>
</array>
我找到了一种如何通过设置捆绑位将文件夹设置为捆绑包的方法,但它看起来相当hacky。 How do I flag a folder as being a package?