我正在尝试围绕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];
}
这并没有真正创建我正在寻找的投影。
这是我试图瞄准的阴影......
而是通过NSView创建一条线,它看起来像是视图边界内的边框。有人有任何想法吗?
答案 0 :(得分:2)
我遇到了类似的阴影问题,因为NSView剪辑了它的边界。
我在使用图层支持的视图时修复了它。我只是将superview的wantsLayer
属性设置为YES ..即 [[view superView] setWantsLayer:YES] 并为视图设置阴影 [view setShadow:dropShadow]