重叠相同文件扩展名的UTI声明

时间:2012-12-21 20:30:42

标签: macos cocoa uti

我的应用程序的用户继续遇到与其他应用程序相关的问题,声明与我的应用程序相同的文件扩展名的不同UTI。我想我最好用一个例子来描述:

我的应用程序支持导入和导出OPML文件。为此,我在info.plist中导入org.opm.opml UTI。这大部分工作正常,但如果其他应用程序为opml文件扩展名声明了不同的UTI,则会失败。例如com.redlex.opml或com.xwavesoft.cloudoutliner.opml。

我能解决这个问题吗?我可以以某种方式告诉启动服务我的应用程序接受所有扩展名为.opml的文件吗?

2 个答案:

答案 0 :(得分:1)

Cloud Outliner今天更新了MAS,现在查看UTI for .opml文件,com.xwavesoft.cloudoutliner.opml现在已经消失了,com.redlex.opml现在就位了。哪个是无趣的,除了OPML文件现在在MindNode中打开没有问题。

除了“各种修复和改进”之外,我找不到Cloud Outliner的任何发行说明。但似乎事情变得更好了。所以:在我的情况下 - 简单的答案是“更新云大纲”但我不确定这解决了更大的问题。我的系统上也有Mellel(显然,对吗?!)但这似乎不会导致同样的问题。

对于那些观看此主题的人来说 - 问题显示为MindNode在其打开的对话框中显示OPML文件的灰色图标。将OPML拖动到Dock中的MindNode图标也没有产生任何结果。

罗布

答案 1 :(得分:1)

我通过以下方法解决了这个问题:

  1. 我从CFBundleDocumentTypes列表中删除了整个LSItemContentTypes条目
  2. 在我的NSDocument子类中,我使用NSString的rangeOfString ::方法在typeName参数中查找@“opml”关键字。
  3. 这项工作得到了用户的确认。