2011年5月25日水曜日

Cocoa FileManager NSPopUpButtonCell

NSPopUpButtonCellを使えば、Cellをクリックしたら出てくるPopupメニューを簡単に制御できるか実験してみた。結論からいうと、ちょっと手に余る。

別プロジェクトを作って、NSPopUpButtonCellを表示してみる。
コードはほとんど現在作っているFileManagerのプロジェクトから流用したのでそれほど手間はかかっていない。

ドキュメントを読んだ限りでは、オブジェクトを生成してNSMenuをsetしたら、あとは難しいことはNSPopUpButtonCellがやってくれる、ように思える。(大いなる誤解(^^;))

で、@"/Developer/Applications/Audio"みたいなpathを分解して、それぞれのサブディレクトリをMenuとして表示するPopUpをこの程度まで作ってみた。


各ボタンにMenuをセットして

[button drawWithFrame:rect inView:self];

としてみたら見事にPopUpButtonとして表示してくれるものの、見た目はこれじゃいかん、ということで

[button drawInteriorWithFrame:rect inView:self]

とボタン内部だけ描画してみたらこうなってしまった。

CellなのでEventは表示しているViewで管理しないといけないようだし、drawInteriorWithFrameをカスタマイズしていくのはかなり苦労がありそう。じゃあNSPopUpButtonそのものを使う、と言う手はどうかというと、見た目のカスタマイズはどちらにしろNSPopUpButtonCellの役目なので苦労は同じだろう、と判断した。

というわけでNSPopUpButtonCellをめぐる実験はこれだけで終了とあいなった。

0 件のコメント:

コメントを投稿