画像が選択されていた時には枠線を表示していたが、グレーの半透明色で塗りつぶすように変更した。
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]+[item.height floatValue])
operation:NSCompositeSourceOver];
if (_selected_item == item) {
// draw selection
[[[NSColor grayColor] colorWithAlphaComponent:0.3f] set];
[NSBezierPath fillRect:[item rect]];
}
}
}
画像を描画した上に半透明色で上書きする。NSColor の colorWithAlphaComponentを使うと半透明色で描画ができる。
それと画像以外の個所をクリックした時に選択を外すようにした。現状ではメンバ変数 _selected_iem = nil だけで良い。