2016-09-20 56 views
0

里面我想使用类似下面的代码绘制里面的NSView简单的矩形:OS X /可可:借鉴的NSView透明窗口

self.shapeLayer = [CAShapeLayer layer]; 
    self.shapeLayer.lineWidth = 2.0; 
    self.shapeLayer.strokeColor = [[NSColor whiteColor] CGColor]; 
    self.shapeLayer.fillColor = [[NSColor blackColor] CGColor]; 
    [self.layer addSublayer:self.shapeLayer]; 
    CGMutablePathRef path = CGPathCreateMutable(); 
    CGPathMoveToPoint(path, NULL, 400, 400); 
    CGPathAddLineToPoint(path, NULL, 400, 600); 
    CGPathAddLineToPoint(path, NULL, 600, 600); 
    CGPathAddLineToPoint(path, NULL, 600, 400); 
    CGPathCloseSubpath(path); 

    // set the shape layer's path 
    self.shapeLayer.path = path; 

我也试图在NSView drawRect:画点什么。

在这两种情况下,矩形都会被绘制出来,但它不是笔触/填充颜色集合,而是像alpha 0.5那样的一些半透明版本!

我试图在NSView上绘制这个Rectangle放在NSWindow里面,它有backgroundColor设置为clearColor,不透明为NO。 然后我认为可以有一些与此透明度相关联的东西,所以我已经将背景颜色更改为greenColor,并将其变为不透明为YES。而且我仍然使用半透明绘制的矩形不是生动的纯色。 我在做什么错?

Inner Rectangle should be black! But it isn't.

回答

0

OK我发现这个问题。我添加了一些额外的核心动画层,我想到了之前创建并删除的视图。 然后在界面生成器中仍然选择了这个额外的动画层,所以我取消了它在下面的图像中的选择,现在它工作正常。 enter image description here