Приветствую! У меня проблема, поиск в Google не дал результатов ...
Я реализовал метод drawRect для своего NSView (подкласса), чтобы рисовать тени и полупрозрачные заливки. Все отлично смотрится! Но теперь мне нужно создать NSImage из моего NSView (сделать снимок) для целей перетаскивания.
Он работает, но рисует иначе: темнее и не так контрастно, как должно быть.
Почему? Может из-за NSGraphicContext разные варианты? Нужна помощь и / или совет!
Вот код для получения NSImage из NSView:
- (NSImage *)makeImageSnapshot {
NSSize imgSize = self.bounds.size;
NSBitmapImageRep * bir = [self bitmapImageRepForCachingDisplayInRect:[self bounds]];
[bir setSize:imgSize];
[self cacheDisplayInRect:[self bounds] toBitmapImageRep:bir];
NSImage* image = [[[NSImage alloc] initWithSize:imgSize] autorelease];
[image addRepresentation:bir];
return image;
}
А вот изображения для визуального сравнения:
- Normal - отрисовывается обычным вызовом drawRect: http://cl.ly/image/213C1Y1V0v2H
- Плохо - записано в NSImage: http://cl.ly/image/183q442S2J14
Думал, разница может показаться очень небольшой, поверьте - при работе с приложением она очевидна. Я не понимаю, почему это происходит. И надеюсь, что кто-то может помочь ...
Заранее спасибо!