2011年4月22日金曜日

Cocoa Tabbed Interface NSViewでもう1回初めから

NSCellのサブクラス化で実験していたtabbed interface、どう考えてもこの先苦労が待っているようなので、ここは一度NSViewで作ってみて、それからまた考えることにする。tabのドラッグアンドドロップとかするとなると、Cellだととんでもないことになる気がするので。

本日はここまで。


Cellの場合、-(void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlViewの中で

NSBezierPath* path=[NSBezierPath bezierPathWithRoundedRect:cellFrame xRadius:3 yRadius:3];

としてから[path stroke]、[path fill]とすればそれらしい見た目になった(・・すごくいい加減な方法なんだけど、pathの外周の線がfillすると底辺だけ上書きされるというcocoaのCell描画の挙動に身を任せただけ)わけだが、Viewだとそうはいかない。

底辺以外をlineToPointでせっせと描いている。いつかはこういう作業もするだろうな、と思っていたのでいい勉強になる。こののっぺりした見た目をどうやったらもう少しかっこよくできるのだろうか・・。

今のところ、Tab本体を描画するクラスと、それをsubViewで管理するTabBarという2つのクラスで作っていこうとしてみている。

0 件のコメント:

コメントを投稿