2012-08-07 80 views
0

我使用下面的代碼來設置我的nsview使用calayer的背景顏色。cocoa:使用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 2012-08-07 10:52:26

+0

在應用程序初始化期間。 – user1295948 2012-08-07 11:07:37

+0

有時會起作用,有時不起作用。 – user1295948 2012-08-07 11:08:00

回答

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]; 
相關問題