我在NSView的drawRect中做了一些简单的绘图,代码如下
[[NSColor colorWithCalibratedWhite:0.250 alpha:0.700] set];
NSRectFill(dRect);
这张图是在嵌套视图中完成的,我发现透明度一直在父视图和窗口中显示,下面显示了一些屏幕。
我如何获得它,所以透明度只会传递到父视图(或之前在该帧中完成的任何绘图?
谢谢!
答案 0 :(得分:4)
你真的不应该使用NSRectFill来绘制透明色。致电
NSRectFill(rect);
实际上只是
的捷径NSRectFillUsingOperation(rect, NSCompositeCopy);
NSCompositeCopy不执行合成,因此在设置透明NSColor时可能会出现意外结果。
请尝试使用此代码:
[[NSColor colorWithCalibratedWhite:0.250 alpha:0.700] set];
[NSBezierPath fillRect:rect];
应正确绘制透明度,底层图形可见。