Я хочу нарисовать фон изображения в NSView и поместить некоторые элементы, которые также имеют прозрачный фон поверх него.Нарисовать фон изображения в NSView под прозрачными элементами
Я перекрытая раздаточный прямоугольник из NSView:
- (void)drawRect:(NSRect)rect
{
[NSGraphicsContext saveGraphicsState];
NSImage *image = [NSImage imageNamed:@"header_background.gif"];
[image drawInRect:CGRectMake(0, rect.size.height - 75, rect.size.width, 75) fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
[NSGraphicsContext restoreGraphicsState];
}
NSWindow INIT:
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag
{
self = [super initWithContentRect:contentRect styleMask:aStyle backing:bufferingType defer:flag];
if (self) {
[self setOpaque:NO];
[self setHasShadow:YES];
[self setBackgroundColor:[NSColor clearColor]];
}
return self;
}
После этого a've получил такой странный эффект. Фоны слайдеров и кнопок также мигают иногда
Что я делаю неправильно?
Благодарим за отзыв. Я обновил первый пост до текущего состояния. Проблема все еще здесь. Кстати, когда я изменяю размер окна, фон элементов становится нормальным (не прозрачным). Но когда они обновляются, проблема появляется снова. –
Итак, похоже, что элементы игнорируют мой фон, нарисованный в NSView. –
Почему вы вызываете setOpaque: НЕТ в окне? Вы пытаетесь сделать окно совершенно ясным? Как насчет заголовка? –