QuickLookプラグインが動き始めました
2008.1.7
プラグイン開発に再チャレンジ
一度チャレンジして挫折したQuickLookプラグインの開発ですが、もう一度トライしてみたところ、何とか動く様になりました。
失敗した原因はいくつかあります。
- 独自UTIが認識されていなかった
- ビルドしたプラグインの場所が悪かった
- RMGDocumentがreadFromURL:ofType:に対応していなかった
独自UTIが認識されていなかった
UTTypeConformsToキーの値をpublic.composite-contentからpublic.dataに変えているのですが、あまり関係ないような気もします。
CFBundleIdentifierを変えたのがいけなかったのかもしれません。これは元に戻しています。
プラグインのプロパティリストに不要なUTImportedTypeDeclarationsキーがあったせいかもしれません。これは削除しています。
とにかくプロパティリストをいじっているうちに Content type UTI: dyn.ah62d4rv4ge81e5phqv10gとなっていたものがContent type UTI: com.novemberkou.rmgdocと正しく認識する様になりました。
ビルドしたプラグインの場所が悪かった
気づいてみれば当たり前ですが、~/Library/QuickLookか/Library/QuickLookのどちらかにおいておかないと、システムがプラグインを認識してくれないわけです。
ビルドして、できたプラグインを ~/Library/QuickLookに移動して、それからqlmanageを実行すれば良いわけですが、そこまで気が回らずついアプリケーション開発の時の様に「ビルドして実行」してしまったため、実行結果が Generator used: Noneとなってしまったのでした。
ビルドする場所を ~/Library/QuickLookにすれば「ビルドして実行」できます。これって誰でも一度はひっかかるような気がするのですが・・・
RMGDocumentがreadFromURL:ofType:に対応していなかった
これは、それ以前に1と2でひっかかっていたので挫折した原因ではないのですが、前回載せたサンプルコードそのままのコードではダメだったという話です。
Pantherで動かす前提のコードなのでreadFromURL:ofType:メソッドは実装していないのでした。
QuickLookプラグイン開発の解説サイトを準備中です
プラグイン自体完成したわけではないのですが、何とかなりそうなメドがついてきたので、いずれ解説サイトを公開できると思います。とはいえ、いつ完成するかまだわからないので、気長にお待ちください。
HOME
前のページへ