macosx 可以在扩展名中注册一个带有点的UTI吗?
Posted
技术标签:
【中文标题】macosx 可以在扩展名中注册一个带有点的UTI吗?【英文标题】:Can macosx register an UTI with a dot in the extension? 【发布时间】:2013-12-24 23:50:56 【问题描述】:我已经阅读了 Apple 的 Introduction to Uniform Type Identifiers Overview 和 Technical Q&A QA1587
,但没有关于如何注册带有点的扩展名的信息,例如 filename.nimrod.cfg
,其中扩展名不仅是 .cfg
,而且是 .nimrod.cfg
。我使用的 plist 定义与单个扩展相同:
<dict>
<key>UTTypeIdentifier</key>
<string>org.nimrod-lang.cfg.nimrod</string>
<key>UTTypeReferenceURL</key>
<string>http://nimrod-lang.org/</string>
<key>UTTypeDescription</key>
<string>Nimrod configuration file</string>
<key>UTTypeIconFile</key>
<string>public.text.icns</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.text</string>
<string>public.utf8-plain-text</string>
<string>public.source-code</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>nimrod.cfg</string>
</array>
</dict>
但是,当我调试预览这些文件之一时,qlmanager 告诉我该文件没有被注册:
[DEBUG] Registering <QLGenerator /Users/gradha/Library/QuickLook/QuickLook reStructuredText copy.qlgenerator> for org.nimrod-lang.nim
[DEBUG] Registering <QLGenerator /Users/gradha/Library/QuickLook/QuickLook reStructuredText copy.qlgenerator> for org.nimrod-lang.cfg.nimrod
[DEBUG] Preview test for nakefile.nimrod.cfg -- file://localhost/Users/gradha/project/nimrod/ql-rest-nim/. Content type UTI: dyn.ah62d4rv4ge80g3xh
所以看起来 UTI 正在注册,但 double 扩展名没有被正确识别。如何让 QuickLook 正确检测这些文件?
【问题讨论】:
【参考方案1】:其实,这很明显。 UTI 标准告诉您,UTI 字符串中的句点是类的倒序链中的决定者。
所以 --- 它被正确解析和使用。你的尿路感染部分没有句号。用标准中的其他内容替换。
【讨论】:
我不明白你在说什么,我遇到的问题是文件扩展名中的点,而不是 UTI 部分。日志显示 QuickLook 正在通过 org.nimrod-lang.cfg.nimrod 但扩展名不匹配。 因为它使用句点来决定什么是扩展。即在最后一个时期之后。简单地说,文件扩展名里面不能有一个点。 UTI Parser 将在逆序链中增加一个组件。以上是关于macosx 可以在扩展名中注册一个带有点的UTI吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用自定义 UTI 删除 UIDocumentPicker 导入/导出