1
我創建了一個按鈕的自定義視圖,因爲我需要在鼠標結束時實現一些高亮顯示。課程非常簡單,我已經實施了mouseEntered:
以及mouseExited:
。該視圖在init方法中進行了跟蹤註冊(不知道它是否是最好的地方)。繪製透明圖像
問題在於繪製。我保留一個ivar mouseOver
,在鼠標輸入時設爲YES
,在鼠標上輸入NO
。另一個伊娃是圖像,稱爲image
。透明度是指鼠標懸停與否時的區別。這裏是我的drawRect:
:
- (void)drawRect:(NSRect)dirtyRect
{
[image drawAtPoint:NSMakePoint(0.0,0.0)
fromRect:dirtyRect
operation:NSCompositeCopy
fraction:((mouseOver) ? 1.0 : 0.0)];
}
它工作得很好,但只有當鼠標第一次進入,顯然。我想問題是在繪製其他圖像之前,視圖並未被清除。我試過加入:
[[NSColor clearColor] set];
NSRectFillUsingOperation(dirtyRect, NSCompositeClear);
但是沒有成功。我怎樣才能解決這個問題?
嗯,我明白了。但如果可能的話,我不想用一種顏色填充它。清除視圖意味着透明。 – sidyll 2011-06-08 18:07:12