QuickLook Plug-In を作る手順

1. Xcode の [File]->[New]->[Project...] で「OS X」の「System Plug-in」から「Quick Look Plug-In」を選択

2. 作成されたプロジェクトの GenerateThumbnailForURL.c と GeneratePreviewForURL.c の拡張子を .m に変更


3. サポートするファイルの拡張子を Info.plist で指定
ここで 2つのルートに分かれる。


a. 自分の作ったアプリケーション独自のファイルでないファイルをサポートする場合(例えば .png や .json 等)
その場合には既にほぼ設定がされているので簡単。
CFBundleDocumentTypes の LSItemContentTypes にある SUPPORTED_UTI_TYPE をサポートするファイルのものに変更するだけで OK。
今回は .json をサポートするプラグインを作成するので、ここには「public.json」と入力。因に .png なら「public.png」になる。

もしどうすれば良いのかわからない場合は mdls コマンドで確認できる。
.json のファイルを確認した様子はこんな感じ。

iMac-coreI3-27:puyoMOON paraches$ mdls /Users/paraches/Desktop/enchantMOON_base/develop/puyo/puyoMOON/info.json 
kMDItemContentCreationDate     = 2013-08-22 05:53:32 +0000
kMDItemContentModificationDate = 2013-08-22 05:53:32 +0000
kMDItemContentType             = "public.json"
kMDItemContentTypeTree         = (
    "public.json",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded               = 2013-09-02 03:26:22 +0000
kMDItemDisplayName             = "info.json"
kMDItemFSContentChangeDate     = 2013-08-22 05:53:32 +0000
kMDItemFSCreationDate          = 2013-08-22 05:53:32 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "info.json"
kMDItemFSNodeCount             = 47284
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 47284
kMDItemFSTypeCode              = ""
kMDItemKind                    = "JSON File"
kMDItemLogicalSize             = 47284
kMDItemPhysicalSize            = 49152
iMac-coreI3-27:puyoMOON paraches$ 

というわけで、kMDItemContentType の「puboic.json」を選択することになる。


b. 自分の作ったアプリケーションのファイルをサポートする場合
自分のアプリケーションでドキュメント用に設定した値を設定する。
UTImportedTypeDeclarations と CFBundleDocumentTypes を設定すれば良いのかな?
上記「参考にしたページ」のリンク先に結構詳しく書いてある。


4. プロジェクトに Cocoa framework を追加

5. GeneratePreviewForURL.m/GenerateThumbnailForURL.m に Import を追加

以上で、QuickLook Plug-In を作成するプロジェクトの準備は完了!
でも、このままコードを書き始めてもデバッグが辛いので、デバッグをサクっとできるようにしてみる。