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