我正在尝试在NSView的背景上绘制NSShadow。我想用它作为NSGradient的替代品,因为我需要支持Mac OS X Tiger。我该怎么办?我知道这一定很容易,我一定是犯了一些错误。
谢谢!
答案 0 :(得分:6)
最简单的方法可能是为视图的图层设置阴影属性。如果你有一个名为view
的NSView *,那就像是:
[[view layer] setShadowOpacity:0.5];
将阴影不透明度设置为大于0的值将使阴影可见。绘制的阴影将类似于视图的alpha通道,因此无论您在视图中绘制的是什么,都会产生阴影。您可以设置其他几个阴影属性,例如模糊半径。请查看CALayer reference page了解更多信息。
如果你必须使用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...
}