2015-10-27 6 views
1

Я реализовал генератор 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?

ответ

0

Это похоже на ошибку в MacOS 10.9. Автор проекта qlImageSize столкнулся с той же проблемой и подал radar report.

Еще один участник этого qlImageSize discussion thread заметил, что «Apple ответила на мой отчет об ошибке, чтобы подтвердить разрешение в Йосемити. Никакое упоминание о Маверикс».

Мой собственный опыт такой же. Тот же генератор Quick Look, который не вызван для public.jpeg под 10.9, работает, как ожидается, в 10.10 и 10.11.