Xcode 4.6 で QuickLook Plug-In を作る手順
QuickLook Plug-In を作るのに参考にしたページ
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 を作成するプロジェクトの準備は完了!
でも、このままコードを書き始めてもデバッグが辛いので、デバッグをサクっとできるようにしてみる。
QuickLook Plug-In のデバッグを Xcode で行う方法
Xcode で QuickLook Plug-In のデバッグを行う仕組みはこんな感じ。
1. Xcode で「Run」する
2. プラグインがビルドされる
3. 自動的に「qlmanage」が起動してビルドされたプラグインにテスト用ドキュメントを指定してプラグインが起動
4. 画面にテスト用ドキュメントが QuickLook を使用して表示される
というわけで、設定の手順は以下の通り。
1. プロジェクトの scheme から「Run」を選択して「Info」タブで「Executable」に「qlmanage」を選択
「qlmanage」は「/usr/bin」フォルダにあるので、Finder で開いておいてから「Executable」のファイル選択ダイアログを表示して「qlmanage」を選択すると簡単。
2. 「Arguments」タブで「Arguments Passed On Launch」に「+」をクリックして項目を追加
増やす内容は「-p テスト用ファイルの path」。
自分の場合はホームディレクトリに「info.json」を置いたので「-p ~/info.json」とした。
(サムネイルのテスト用は「-t テスト用ファイルの path」を入力する。)
3. プロジェクトの TARGETS を選択して「Build Phases」タブを表示、右下の「+Add Build Phase」から「Copy Files」を選択
「Copy Files」で「+」をクリックして「Destination」を「Absolute Path」、「Subpath」を「~/Library/QuickLook」とする。
QuickLook のプラグインを作ろうとする人が自分のライブラリに「QuickLook」フォルダを作ってないとは思わないけど、ない場合は作る。
以上で「Run」するとビルドされて qlmanage が QuickLook 画面を表示してくれる。
後は GenerateThumbnailForURL.m と GeneratePreviewForURL.m に、サムネイル/プレビュー表示用のコードを書いていけば OK!
その辺りは Xcode のバージョンによらないので、上記「参考にしたページ」を参照して日の丸表示する辺りからあれこれやってみれば簡単なはず。