У меня есть NSMatrix с парой NSButtons, которые не имеют текста, но являются только изображениями.Одно из изображений загружено из Интернета, и я хотел бы, чтобы в моем приложении OS X его закругленные углы.
Я нашел один ответ, который почти соответствует тому, что я искал: Как нарисоватьокругленный NSImage но, к сожалению, он действует безумно, когда я его использую:
// In my NSButtonCell subclass
- (void)drawImage:(NSImage*)image withFrame:(NSRect)imageFrame inView:(NSView*)controlView
{
// [super drawImage:image withFrame:imageFrame inView:controlView];
[NSGraphicsContext saveGraphicsState];
NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:imageFrame xRadius:5 yRadius:5];
[path addClip];
[image drawInRect:imageFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
[NSGraphicsContext restoreGraphicsState];
}
Проблема в том, что если изображение частично прозрачное (PNG), то оно полностью уничтожается, и я вижу только несколько белыхпикселей на черном фоне.
А если изображение не прозрачное, то оно получает закругленные углы, но поворачивается на 180 °, и я не знаю почему.
Есть предложения?