2011年6月22日水曜日

Cocoa QLPreviewPanel

気をとり直してQuickLook関連を調べ始める。

最初は選択したファイルをQLPreviewPanelで表示できればいい、と思っているわけだが、ドキュメントを読むとどうも「PreviewView」ともいうべき、「アイコンの代わりにPreviewがアイコン大に表示されるView」も作る方法がQuickLook関連でわかるかもしれない。わくわく。

とりあえずQLPreviewPanel。

先達のみなさまが親切なソースコード付きの解説をネットのあちこちに残してくれている。例えばいつものxcatsan師匠

Quick Look APIs(その2)

こんな感じで分かりやすく解説してくれている。しかし・・・OSX10.6以降、QuickLookの仕組みが大きく変わったらしく、解説されている方法は全然通用しない。

[[QLPreviewPanel sharedPreviewPanel] setURLs:list
currentIndex:0
preservingDisplayState:YES];

というメソッドがない、とすぐに弾かれてこれに気づいた。
デベロッパドキュメントの中を漁ると、まずはサンプルプロジェクトの「QuickLookDownloader」を調べるといいらしいことがわかる。

そうすると、
・Quick Look panel data source
・Quick Look panel delegate
のメソッドを定義した上、QLPreviewPanelに表示するデータクラスをQLPreviewItemプロトコル準拠にしないといけないようだ。

で、本日はここまで。

QLPreviewPanelを表示することはできたが、おそらくdelegateのpreviewPanel:sourceFrameOnScreenForPreviewItem:とpreviewPanel:transitionImageForPreviewItem:contentRect:を定義していないため、肝心のプレビューが表示されていないと思われる。

おもしろいのでさらに調べていこう。

0 件のコメント:

コメントを投稿