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 导入/导出

自定义 UTI 注册问题

在 Cocoa 中打开任何文件

无法在 IOS 13 上导入具有自定义 UTI 扩展名的文件

独家 iOS UTI

如何使用 Xcode 11 在 UTI 部分配置 .app 文件?