子视图覆盖超级视图

时间:2011-04-15 08:54:09

标签: cocoa drawing nsview subview

我有一个NSBorderlessWindow类型的窗口,其contentView具有以下hirarchy:

view 1 -> draws gray background
  |
  + view 2 -> draws rectangle with [NSColor colorWithDeviceRed:0 green:0 blue:0 alpha:0.8]

结果如下: enter image description here

视图2是视图1的子视图,从我的理解中,半透明的黑色应该叠加在灰色上。但是,黑色似乎取代了绘制区域中的灰色。我使用NSRectFill进行绘图。我怎么能避免这种效果,半透明的黑色真的画在灰色上?

1 个答案:

答案 0 :(得分:1)

有人在irc.freenode.net上非常棒的#macdev频道向我指出,我应该将NSRectFillUsingOperation与NSCompositeSourceOver一起使用,这就像魅力一样。无论出于何种原因,默认的NSRectFill似乎都在使用不同的复合材料。