我正试图在NSView的背景上绘制一个NSShadow。我想用它来代替NSGradient,因为我需要支持Mac OS X Tiger。我该怎么做?我知道这一定很容易,我一定犯了一些错误。
谢谢!
最简单的方法可能是只设置视图层的阴影属性。如果您有一个名为view
的NSView*,它将类似于:
[[view layer] setShadowOpacity:0.5];
将阴影不透明度设置为大于0将使阴影可见。绘制的阴影将类似于视图的alpha通道,因此无论您在视图中绘制什么,都会有阴影。您还可以设置其他几个阴影属性,例如模糊半径。查看CALayer参考页面了解更多信息。
如果你必须使用NSShadow,那么在你画画之前只需设置一个阴影:
- (void)drawRect:(NSRect)rect
{
NSShadow *shadow = [[[NSShadow alloc] init] autorelease];
[shadow setShadowBlurRadius:3.0];
[shadow setShadowOffset:NSMakeSize(0.0, 5.0)];
[shadow setShadowColor:[NSColor colorWithCalibratedWhite:0.0 alpha:0.6]];
[shadow set];
// continue with your drawing...
}