2011年5月5日木曜日

Cocoa FileManager 右側のペイン 独自View 考え中

本日の収穫。
NSScrollViewの上に独自Viewをはりつけて、[scrollView setDocumentView:独自View]とすれば、独自Viewのframeの大きさによってNSScrollViewがスクロールの面倒を自動でみてくれる、ということがわかった。なるほど。

NSURLでファイルの更新日時やファイルサイズを取得できるようになったので、こんどはそれを表示する。表示専用の独自Cellを用意してあるので、そこでdrawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlViewを書けばいいわけだが・・・。「ファイル名+サイズ+更新日時」を1セットにしたい。これだと目視でだいたい350くらい必要。(・・・350の単位はピクセルでいいのか?(^^;)そんなこともわかっていないという)Cellのwidthを固定にしてしまえば描画はかなり楽になりそう。あとは表示すべきファイルの数によって、Cellを乗せるViewのframeの大きさを変えてやればいい、と。Cellの大きさは表示する項目の数によって変えてやればいいだろう。

しかしそうなると、Windowがリサイズされた時に独自Viewのリサイズをどうするのか。現在のコードでいうと、リサイズされたらdrawRect:(NSRect)dirtyRectが呼ばれるわけで、そこで必ずCellの大きさに基づいた表示数を計算する仕様だから大丈夫か。

また、アクティブなCell(の表示にはまだ手をつけてないけど)を動かしたときのスクロールはどうなるか。これはキー入力に対応してみないとわからないな。

とかなんとか考えながら、本日はこんな感じで終了。


その一方でNSTableViewでの表示もやりたいし、いろいろと迷い中。FinderのGrid表示みたいなのもやりたいしなあ。

右側のペインは
1,独自描画のFDclone風View
2,NSTableView
3,Grid表示
の3つでだいたい決定か。

0 件のコメント:

コメントを投稿