在Mojave 10.14 Beta中,复合模式在某些情况下不再对我有用。 基于Mojave强制基于图层的NSView绘图破坏了很多自定义NSView绘图。
NSCompositingOperationSourceAtop / NSCompositeSourceAtop什么也没画……完全坏了!我至少希望能够绘制一个cr脚的未混淆的源图像。 (编辑:仅当您首先绘制非清晰的背景色时,它才会绘制某些内容。如果先填充[NSColor clearColor],则它不会绘制任何内容)
NSCompositingOperationCopy确实可以工作。
NSCompositingOperationPlusLighter / NSCompositePlusLighter绘制的图像比背景颜色浅。我想这是可以预期的,因为图层对父图层的背景颜色一无所知。
以下是一些相关的源代码(NSCompositeCopy绘制图像,NSCompositeSourceAtop绘制任何图像):
NSImage *myImage = blahblah;
[myImage drawInRect:targetRect fromRect:imgRect operation:NSCompositeSourceAtop fraction:1.0];