1

我正在尝试在 NSView 周围创建一个阴影,就像 NSWindow 如何使用它的阴影一样,但我遇到了一些困难。我为要为其创建投影的 NSView 创建了一个类,并将此代码用于覆盖方法:

   -(void)drawRect:(NSRect)dirtyRect {
    NSRect rect = NSInsetRect([self bounds], 10.0, 10.0);
    NSShadow *dropShadow = [[[NSShadow alloc] init] autorelease];
    [dropShadow setShadowColor:[NSColor blackColor]];
    [dropShadow setShadowBlurRadius:5];
    [dropShadow setShadowOffset:NSMakeSize(0,-3)];

    [NSGraphicsContext saveGraphicsState];

    [dropShadow set];

    NSRectFill(rect);

    [NSGraphicsContext restoreGraphicsState];

    [super drawRect:dirtyRect];
}

这并没有真正创建我正在寻找的阴影。

这是我要瞄准的阴影...

NSWindow 阴影

而是通过 NSView 创建一条线,看起来像是视图边界内的边界。有人对此有任何想法吗?

4

1 回答 1

2

我遇到了类似的阴影问题,因为 NSView 剪辑了它的界限。

当我使用图层支持视图时,我修复了它。我只是将 superview 的wantsLayer属性设置为 YES.. 即[[view superView] setWantsLayer:YES]并为视图[view setShadow:dropShadow]设置阴影。

于 2013-03-05T05:20:04.187 回答