Drawer をつけてみる

Window に Drawer をつける方法のメモ。実際に、どれだけ有用かわからないけど、他のことを試したときにちょっと使ってみたので忘れないように。

ます、Interface Builder の Library から Window and Drawer を選んで、Nib ファイルに追加する。

そうすると、Window、Drawer Content View、Drawer の3つが追加される。

Window が既にある場合などは、この追加された Window を消して、使いたいものにつなげる。そこで、どうつながっているのかを見ると、parentWindow としてつながっているだけなので、これを Drawer を使いたい Window につなげればいい。

Window の方はどうなっているかというと、Outlet につながっている。

さて、次に Drawer の設定をする。Attributes では、Window のどこから出すかを指定する。まあ、普通に右で。

それから、サイズを指定する。この辺りは、実際に使ってみてから調節するしかないかな。

で、次にするのが、Drawer Content View の中身の設定。基本的には、Custom View なので何でも入れられる。ここでは、Table View を入れてみる。Table View のもうちょっと詳しいことは、このページを参照してください。

さて、とりあえず試しに中身を入れてみようと思うんだけど、面倒なので Array Controller を使う。細かい設定は、ここを参照してください。

まず、Library から Array Controller を追加して、名前を Item Array としてみた。

ここでは、コラムは一つしかないので、中身は item 一つだけ。Select Inserted Objects のチェックだけ外した。

そして、テーブルのコラムを Array Controller にバインドする。key は item を選ぶ。

さて、この Array Controller の中身を入れないといけない。この Array Controller を aryCtl という outlet にしてつなぐ。まあ、中身は何でもいいので、適当に数字を入れておく。

ib_outlets :aryCtl

def awakeFromNib()

10.times do |i|

@aryCtl.addObject({"item" => i})

end

end

まだ、このままだと、Window が現れるだけで何も起こらない。Drawer を出す機能が必要。そこで、Window にボタンを付ける。

そして、このボタンを Drawer の toggel: に結びつける。toggle は、同じボタンで、出したりしまったりする操作。出すだけなら open、しまうだけなら close に結びつける。

これで出来上がり。ビルドして実行すると Window が出てきて、ボタンをクリックすると Drawer が現れる。