選択された時に画像の周りに灰色の枠線を描く処理を入れてみる。
まず選択画像を表すメンバ変数をビューへ追加する。
WorkView.h
@interface WorkView : NSView {
:
Item* _selected_item;
}
その上でマウスで画像が選択された時に上記変数へ入れておく。
drawRect: で選択画像の周りに枠線を描画する。
WorkView.m
- (void)drawRect:(NSRect)rect {
[[NSColor whiteColor] set];
NSRectFill(rect);
for (Item* item in [_controller items]) {
[item.image compositeToPoint:NSMakePoint([item.x floatValue], [item.y floatValue])
operation:NSCompositeSourceOver];
if (_selected_item == item) {
// draw selection
[[NSColor lightGrayColor] set];
NSRect rect = [item rect];
[NSBezierPath setDefaultLineWidth:1.5];
[NSBezierPath strokeRect:rect];
}
}
}
こんな感じ。