2011年6月25日土曜日

Cocoa IKImageBrowserView(2)バインディングで表示する

なんのことない、すべて
こたつつきみかんさん

のこの2つのアーティクルのまんま作業したら見事に表示できた。

IKImageBrowserViewの使い方

IKImageBrowserViewの使い方 – 2

xcatsan師匠の文章と同じくらい、参考になるなあこのblogは。

以前、NSTreeControllerの実験用に作ったプロジェクトに、IKImageBrowserViewをはめこむ。で、上の2つのアーティクルどおりにバインディングでディレクトリ内のファイルを表示してみたらうまくいった。

で、以下の2点のみ自分で書き換えた。
いずれもIKImageBrowserViewItemプロトコル。
- (NSString *)imageRepresentationType
{
 return IKImageBrowserQuickLookPathRepresentationType;
}

- (id)imageRepresentation
{
 return [self fileURL];
}
こたつつきみかんさんでは

・IKImageBrowserNSImageRepresentationType

を指定してNSImageを渡すように書かれていたのを、IKImageBrowserQuickLookPathRepresentationTypeでNSURLを渡すように変更したところ、ほぼFinderライクな見た目となった。


速度も十分。以前、自分でカスタムCellを作ったときは/usr/bin内を表示させると激おそだったが、もちろんIKImageBrowserViewならそんなことはない。

いくつか不満もあって、たとえば表示用のIKImageBrowserCellのカスタマイズが簡単ではない(ように思える)こと、とか。ファイル名が長い場合、Finderなら2行に折り返しているけど、そういうカスタマイズはできないようだ、サブクラス化しても。

しかしとりあえずこれで「プレビューView」のめどはたった感じ。明日はdelegateメソッドを作ってフォルダアイコンをダブルクリックした場合は、という処理を付け加えよう。

0 件のコメント:

コメントを投稿