Celem jest tutaj, aby warstwa wyboru była włączonatop "z NSImageView widziane przez użytkownika, jednak moja warstwa selekcji w jakiś sposób kończy się na" plecach "Oto moje przesłonięte -setImage z mojej podklasy NSImageView:
-(void)setImage:(NSImage *)newImage {
if(newImage) {
// compute image location in view
_imageLocation.x = ( [self frame].size.width - [newImage size].width ) / 2.0;
_imageLocation.y = ( [self frame].size.height - [newImage size].height ) / 2.0;
// call to parent
[super setImage:newImage];
if(_pixelDataManager) {
_pixelDataManager = nil;
}
_pixelDataManager = [[PixelDataManager alloc] initWithImageForData:newImage];
_selectionLayer = [CALayer layer];
[_selectionLayer setBorderColor:[[NSColor yellowColor] CGColor]];
[_selectionLayer setBorderWidth:2.0];
[_selectionLayer setCornerRadius:0.0];
[[self layer] addSublayer:_selectionLayer];
}
else {
[super setImage:nil];
_pixelDataManager = nil;
_imageLocation.x = 0.0;
_imageLocation.y = 0.0;
}
}
Tutaj skupia się na żółtym polu. Mam podobny kod dla niestandardowego NSView w innym projekcie i to wydaje się być w porządku, ale nie mogę zrozumieć, dlaczego to nie działa dla NSImageView.
Odpowiedzi:
0 dla odpowiedzi № 1Dzięki mohacom odpowiedział na pytanie.