У меня есть окно с пользовательским представлением в нем. Этот вид get - это изображение, нарисованное в качестве фона в нем. Предположим теперь, что это структурированное серое фоновое изображение.Проблемы с фоном: NSButton на NSView
- (void)drawRect:(NSRect)dirtyRect
{
[super drawRect:dirtyRect];
[self.titlebarBGImage drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1];
}
В этом пользовательском представлении я добавил квадратную текстурированную кнопку и настроил ее в IB, чтобы не иметь границы. В моей AppDelegate я затем дать этой кнопку изображение в методе applicationDidFinishLaunching
:
// ...
// [[self.minimizeButton cell] setBackgroundColor:[NSColor clearColor]];
[self.minimizeButton setImage:minimizeImage];
// ...
Как-то же фон (titlebarBGImage
) также обращается в качестве фона кнопки, так что он имеет структурированное серый цвет изображения, но по размеру размер кнопки. Это выглядит глупо, и я не хочу этого явно. Если я затем раскомментирую строку с setBackgroundColor:
, фон очищается, но фон пользовательских представлений также не светит, когда изображение кнопок прозрачно (изображение кнопки - это круг), поэтому я получаю прямоугольник, в котором светит фон Windows (т. е зеленый цвет в изображении примера), а не на фоне зрения кнопки находится в
Вот изображение, чтобы понять, что происходит:
сверху вниз:
- Что я хочу достичь, то есть вид серый структурированный Б.Г. просвечивает кнопки прозрачной области
- Что я получаю с верхним кодом, т.е. без незакомментированной линии: Обычай рассматривает фон рисуется втиснулся в фоновом режиме кнопки
- что я получаю с линией
clearColor
, то есть цвет окна (зеленый) светит, а не bg вида.
Как получить максимальный результат?
Редактировать: Я нажал example project to github, чтобы вы могли видеть, что я имею в виду.
Я изменил название и надеюсь, что кто-то считает, что это перекати. Мне все равно нужен ответ, THX – beipawel