2012-08-07 4 views
0

Я использую следующий код, чтобы установить цвет фона моего nsview, используя calayer.Какао: использование calayer разрушает мою заявку в какао?

CALayer *viewLayer = [CALayer layer]; 
    [self.view setLayer:viewLayer]; 
    [self.view setWantsLayer:YES]; 
    [viewLayer setBackgroundColor:CGColorCreateGenericRGB(0.74, 0.99, 0.79, 1.0)]; 

Этот код разрушает мое приложение.

Пожалуйста, помогите мне ..

+0

Когда и где вы позвоните этому коду? – Dmitry

+0

во время инициализации приложения. – user1295948

+0

иногда это работает, а иногда нет. – user1295948

ответ

0

Ваш код работает для меня. Единственное, что вы должны проверить, - это ваше представление, загруженное к тому времени, когда вы установили для него слой.

Если вы просто хотите нарисовать вид с указанным цветом фона, вам не нужно устанавливать для него CALayer. Самый простой способ сделать свой собственный NSView подкласс:

@interface MyColoredView: NSView 

@property (copy) NSColor* backgroundColor; 

@end 

@implementation MyColoredView 

@synthetize backgroundColor; 

- (void)drawRect:(NSRect)dirtyRect 
{ 
    [self.backgroundColor set]; 
    NSRectFill(dirtyRect) 
} 

@end 

После этого необходимо установить класс для представления в IB, чтобы MyColoredView и установить его цвет фона во время инициализации:

self.view.backgroundColor = [NSColor greenColor]; 
Смежные вопросы