所有NSViews我在Cocoa應用程序3個NSViews,其它的每個子視圖。繪製透明NSImage中使得透明
FirstNSView - > SecondNSView - > ThirdNSView
FirstNSView繪製使用核心圖形固體背景填充。
SecondNSView爲許多其它視圖的容器圖。
ThirdNSView繪製一個NSImage中到使用以下代碼其幀在drawRect
:
[img drawAtPoint:NSMakePoint(0, 0) fromRect:NSMakeRect(0, 0, img.size.width, img.size.height) operation:NSCompositeDestinationAtop fraction:1.0];
我使用NSCompositeDestinationAtop
,因爲它允許圖像幾乎充當的img
非透明區域的掩模。
然而,img
透明區域,使整個窗口透明,而不是顯示通過對FirstNSView因爲我期望的那樣。像這樣:
注意,與其他複合類型的實驗仍然導致同樣的問題。
我有很多瞭解NSViews不意味着「分層」,但我不能確定這是與此有關。到目前爲止,我已經很好地使用核心圖形繪製到NSView上,並且透明部分暴露了「後面」圖層。只是試圖合成這個圖像,這個問題已經出現。
我會很感激任何指針,爲什麼發生這種情況,解決它的一個可行的辦法。
截圖中的紫色是我的桌面。正如你所看到的,紫色是在合成圖像的灰色箭頭下。不,我不想要NSCompositeSourceOver - 它會導致http://i.imgur.com/LZgxk.png。我想要的效果與我的原始圖片一樣,但沒有像現在這樣呈現桌面。 – JoeR 2011-01-28 14:41:25