我正在尝试在我的应用程序中实现捆绑文档类型。但是,经过一番研究,似乎 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。如何将文件夹标记为包?