Cocoa 具有渐变背景和阴影的NSView

Cocoa 具有渐变背景和阴影的NSView,cocoa,core-animation,nsview,Cocoa,Core Animation,Nsview,我希望我的NSView同时具有渐变背景和阴影,因此我对NSView进行了子类化,并覆盖了-(void)awakeFromNib方法,如下所示: [self setWantsLayer:YES]; // view's backing store is using a Core Animation Layer CAGradientLayer *backgroundGradient = [[CAGradientLayer alloc] init]; backgroundGradient.colors

我希望我的NSView同时具有渐变背景和阴影,因此我对
NSView
进行了子类化,并覆盖了
-(void)awakeFromNib
方法,如下所示:

[self setWantsLayer:YES]; // view's backing store is using a Core Animation Layer

CAGradientLayer *backgroundGradient = [[CAGradientLayer alloc] init];
backgroundGradient.colors = @[
    (__bridge id)CGColorCreateGenericGray(0.85, 1.0),
    (__bridge id)CGColorCreateGenericGray(0.94, 1.0)
];
backgroundGradient.masksToBounds = NO;

CALayer *shadowLayer = [CALayer layer];
shadowLayer.shadowColor = CGColorCreateGenericGray(0.5, 1.0);
shadowLayer.shadowOffset = NSMakeSize(0, 0.0);
shadowLayer.shadowRadius = 10.0;
shadowLayer.shadowOpacity = 1.0;
shadowLayer.masksToBounds = NO;

[backgroundGradient addSublayer:shadowLayer];

[self setLayer:backgroundGradient];
然而,只显示了梯度。此外,如果我尝试
[self-setLayer:shadowLayer]
则会显示阴影(当然,没有渐变)


如何同时显示渐变和阴影?非常感谢

阴影层应该是什么样子的?阴影肯定只在用户界面元素的边缘起作用?另外,为什么不配置梯度,以有一个阴影,以及?我希望它是像在前面的黑暗灰色框中