Может ли macosx зарегистрировать UTI с точкой в расширении?
Я читал Введение Apple в Обзор унифицированных идентификаторов типов и технические вопросы и ответы 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 регистрируется, но двойное расширение не распознается правильно. Как я могу заставить QuickLook правильно определять эти файлы?
1 ответ
На самом деле это очевидно. Стандарт UTI говорит вам, что точка в строке UTI является решающей в цепочке классов в обратном порядке.
Итак --- было проанализировано и использовано правильно. У вас нет периода в ваших частях UTI. заменить на что-то еще в рамках стандарта.