0

在我的应用程序中,我有一个 NSView,我将其用作绘图画布,使用 NSBezierPath 绘制一些原始形状,如矩形和椭圆。现在我需要使我的画布透明,但我希望我绘制的形状具有与以前相同的不透明度。我很好奇是否有可能做到这一点,如果可以,怎么做?!

编辑:

抱歉之前的描述不好!

我的最终目标是能够在透明画布上绘制正常的饱和颜色形状。如果可能的话,我所说的透明是指完全清楚。当我绘制形状时,我的视图一直在重绘自己,所以即使在这些情况下,我也希望一切都像上面描述的那样。

任何形式的帮助表示赞赏!

4

2 回答 2

5

要使窗口透明以使其后面的任何内容都能显示出来,请将窗口设置为backgroundColor[NSColor clearColor]窗口 opaque设置为NO

设置视图opaque是不必要的,因为它已经NO默认设置,并且因为这并不能满足您的需求。视图的属性意味着与窗口的属性opaque不同的东西。opaque

填充clearColor是不必要的,因为所做的只是擦除您之前绘制的内容。如果你之前没有画过任何东西,那么你正在擦除一块干净的板子。

的视图绘制的任何东西(不是clearColor)仍然可见。

于 2013-04-23T01:31:26.710 回答
1

设置backgroundColorNSView透明的,例如:

你可以使用这个方法

- (void)drawRect:(NSRect)dirtyRect {
    // set any NSColor for filling, say white:
    [[NSColor clearColor] setFill];
    NSRectFill(dirtyRect);
}

参考:更改 NSView 的背景颜色的最佳方法

于 2013-04-22T18:28:16.977 回答