在NSView中绘制NSShadow



我正试图在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...
}

相关内容

  • 没有找到相关文章

最新更新