1

我的应用程序的用户不断遇到与其他应用程序相关的问题,这些应用程序为与我的应用程序相同的文件扩展名声明不同的 UTI。我想我可以用一个例子来最好地描述这一点:

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

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

4

2 回答 2

1

Cloud Outliner 今天在 MAS 上更新,现在查看 .opml 文件的 UTI,com.xwavesoft.cloudoutliner.opml 现在已经消失,com.relex.opml 现在取而代之。这将是无趣的,除了现在在 MindNode 中打开 OPML 文件没有问题。

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

对于那些观看此线程的人 - 以 MindNode 形式呈现的问题在其打开的对话框中显示 OPML 文件的灰色图标。将 OPML 拖到 Dock 中的 MindNode 图标也没有产生任何结果。

于 2012-12-22T18:32:15.610 回答
1

我通过以下工作解决了这个问题:

  1. 我从 CFBundleDocumentTypes 列表中删除了整个 LSItemContentTypes 条目
  2. 在我的 NSDocument 子类中,我使用 NSString 的 rangeOfString:: 方法在 typeName 参数中查找 @"opml" 关键字。

用户确认了此解决方法。

于 2013-01-22T17:55:56.580 回答