2013-06-28 5 views
3

У меня есть NSBezierPath, который должен иметь полупрозрачную заливку. Когда я заполняю его сплошным цветом, я получаю ожидаемый результат. Однако, когда он заполнен полупрозрачным цветом, я получаю путь с закругленным штрихом, но с нечетным прямоугольным заполнением. Это выглядит следующим образом:NSBezierPath с прозрачным заполнением

Rectangular fill

Вместо заполнения всей площади, я получаю заполненный прямоугольник внутри топить с небольшой незаполненной границей. Я установил свой путь следующим образом:

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]; 

Если у кого-то есть идеи, это было бы здорово.

Благодаря

ответ

1

Полупрозрачный заливка перекрытия с границы, как NSBezierPath штрихи от середины пути, который является причиной, что небольшой границы. Белая рамка и другая граница должны содержать до 4 пикселей. Поэтому, чтобы исправить это, я думаю, вам нужно создать еще один путь безье, чтобы предотвратить совпадение двух.

+0

Это хорошо работает. Благодарю. – nosedive25