コード解説の最後は ThinButtonBarを使うクライアントコード。サンプルでは AppControllerが ThinButtonBarを作り、ボタンを押した時のイベントを受け取っている。
サンプルコードでは、ThinButtonBarを作り、3つのボタンを登録する。その後、NSWindowのcontent viewのサブビューとして追加している。AppController.m
@implementation AppController
-(void)awakeFromNib
{
NSRect buttonBarFrame = NSMakeRect(50, 50, 0, 0);
ThinButtonBar *button_bar = [[ThinButtonBar alloc] initWithFrame:buttonBarFrame];
[button_bar addButtonWithImageResource:@"icon_cancel" tag:TAG_CANCEL];
[button_bar addButtonWithImageResource:@"icon_timer" tag:TAG_TIMER];
[button_bar addButtonWithImageResource:@"icon_record" tag:TAG_RECORD];
[button_bar setDelegate:self];
[[_window contentView] addSubview:button_bar];
[button_bar release];
}
サンプルではイベント処理の実装はログへ書き出すだけ。どのボタンが押されたのかは tag::NSNumber で判断できる。tag値は上で見たようにボタン登録時に AppController側で用意して渡してやる。
-(void)clickedAtTag:(NSNumber*)tag
{
NSLog(@" %@", tag);
}
- - - -
ボタンができた。次は RubberBandへ戻ってこのボタンを貼付けてみよう。