Cocoa 带透明填充的NSBezierPath

Cocoa 带透明填充的NSBezierPath,cocoa,nsview,nsbezierpath,nscolor,Cocoa,Nsview,Nsbezierpath,Nscolor,我有一个NSBezierPath需要半透明填充。当我用纯色填充它时,我得到了预期的结果。然而,当用半透明的颜色填充时,我得到了一个圆形笔划的路径,但是一个奇怪的矩形填充。它看起来像: 我没有填充整个区域,而是在斯托克城内用一个小的、未填充的木板填充了一个矩形。我设置了如下路径: NSBezierPath *menuItem = [NSBezierPath bezierPathWithRoundedRect:menuItemRect xRadius:3 yRadius:3] [menuItem

我有一个
NSBezierPath
需要半透明填充。当我用纯色填充它时,我得到了预期的结果。然而,当用半透明的颜色填充时,我得到了一个圆形笔划的路径,但是一个奇怪的矩形填充。它看起来像:

我没有填充整个区域,而是在斯托克城内用一个小的、未填充的木板填充了一个矩形。我设置了如下路径:

NSBezierPath *menuItem = [NSBezierPath bezierPathWithRoundedRect:menuItemRect xRadius:3 yRadius:3]

[menuItem setLineWidth:4.0];
[menuItem setLineJoinStyle:NSRoundLineJoinStyle];

[[NSColor whiteColor] set];
[menuItem stroke];

[[NSColor colorWithCalibratedRed:0.000 green:0.000 blue:0.000 alpha:0.500] set];
[menuItem fill];
如果有人有什么想法,那就太好了


感谢

半透明填充与边界重叠,因为NSBezierPath从路径中间笔划,这导致了小边界。白色边框和另一个边框的合计应为4像素。所以要解决这个问题,我认为你需要创建另一个贝塞尔路径,以防止2个相互重叠