0

次のコードを使用して、calayer を使用して nsview の背景色を設定しています。

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

このコードがアプリケーションをクラッシュさせています。

私を助けてください..

4

1 に答える 1

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];
于 2012-08-07T11:35:33.587 に答える