Я реализовал генератор Quick Look, который может отображать несколько типов изображений, включая файлы JPEG.Finder не будет вызывать генератор Quick Look для файла JPEG (public.jpeg)
Он вызывается системой для рендеринга эскизов и предварительных просмотров для любого из типов файлов, отображаемых в его списке свойств, за исключением одного: public.jpeg.
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string></string>
<key>CFBundleTypeRole</key>
<string>QLGenerator</string>
<key>LSItemContentTypes</key>
<array>
<string>public.jpeg</string>
<string>com.canon.cr2-raw-image</string>
<string>com.sony.arw-raw-image</string>
</array>
</dict>
</array>
Учитывая фрагмент списка свойств выше, мой генератор будет успешно призвал .CR2 и .ARW файлов, но не для .JPG файлов.
Я сбросил базу данных генератора Quick Look с помощью qlmanage и подтвердил с помощью qlmanage -m, что мой генератор связан с public.jpeg UTI (так же, как и с двумя другими UTI в этом примере).
qlmanage -m | grep jpeg
public.jpeg -> /Applications/MyApp.app/Contents/Library/QuickLook/MyQLGenerator.qlgenerator (123)
Тем не менее, при выборе файла JPEG в Finder и нажмите пробел, Quick Look всегда вызывает генератор по умолчанию:
10/26/15 6:23:49.343 PM com.apple.quicklook.satellite[21978]: [QL] <QLThumbnailRequest testfile.jpg>. Content type UTI: public.jpeg. Generator used: <QLGenerator /System/Library/QuickLook/Image.qlgenerator>
Quick Look даже вызывающий генератор по умолчанию, когда я спрашиваю его специально, чтобы вызвать мина вместо:
qlmanage -p -c public.jpeg -g "/Applications/MyApp.app/Contents/Library/QuickLook/MyQLGenerator.qlgenerator" testfile.jpg
Testing Quick Look preview with files:
testfile.jpg
- force using content type UTI: public.jpeg
- force using generator at path:
/Applications/MyApp.app/Contents/Library/QuickLook/MyQLGenerator.qlgenerator
2015-10-26 18:43:34.450 qlmanage[22054:507] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x8c27, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2015-10-26 18:43:34.475 qlmanage[22054:507] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x8d47, name = 'com.apple.CFPasteboardClient'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2015-10-26 18:43:34.475 qlmanage[22054:507] Failed to allocate communication port for com.apple.CFPasteboardClient; this is likely due to sandbox restrictions
(bootstrap_register() ошибки кажется вездесущей с Quick Look, а также появляется при просмотре других типов файлов, но эти работы, как ожидают ed.)
Есть ли способ получить быстрый взгляд на вызов моего генератора для файлов JPEG?