2012-09-28 26 views
6

我已阅读关于此问题的所有门票,但我仍然不明白。我有一个非文档的OSX应用程序(用于OSX Lion和MountainLion)。我希望此应用导出和导入与自定义文件扩展名“.iobs”关联的自定义数据。在内部,这些文件只是使用[NSKeyedArchiver archivedDataWithRootObject:]进行数据归档,并保存到磁盘上并带有“iobs”扩展名。如何为OSX注册自定义非文档UTI /文件类型以识别它?

所以,我的检查清单是这样的:

1)导出机制:检查。我的应用程序正确创建.iobs文件。如果我运行“文件<filename.iobs>”在终端,我得到“iObserve_exportedItems.iobs:苹果二进制属性列表”

2)出口UTI的宣言,检查。如下图所示。我没有声明一个自定义的Document类型,因为它从来没有在我的应用程序中使用NSDocument,并且没有意义。无论如何,我已经尝试过并失败了。我也尝试过“符合”条目的不同组合,但没有成功。

Snapshot of Xcode4 exported custom UTI declaration

3)是否有任何第三点???我需要启动一次我的应用程序让系统知道吗?到目前为止,我只是在Xcode的Debug中运行它,并没有任何效果。所以我猜我的Info.plist是错误的,但我从Xcode4界面填充它,所以???

感谢您的任何帮助,提示,问题,建议。

回答

14

好吧,显然,即使我没有指定文档类,我也必须声明文档类型。请参阅附件截图。请注意,只留下文档UTI不起作用。我确实需要这两个(导出的UTI和文档类型)。不是,如果我说它符合com.apple.binary-property-list,我没有正确的图标。

对于那些想知道的事情,除了启动应用程序一次,“注册”一个类型(及其后续更改)无关。

enter image description here

+2

+1感谢您指出了截图。这是关于如何为您的应用程序注册文件类型的非常完整的问答。 – codingFriend1

+2

+1谢谢!我无法相信找到这些信息有多难。 –