2010-07-18 50 views
1

我在NSScrollView中使用自定義的NSScrollers。但是,當NSScroller的任何超級視圖都啓用了核心動畫。我得到這個繪圖問題,這是一個巨大的麻煩。每當我滾動到滾動視圖的角落滾動條剪輯。但是,如果一個卷軸開始在角落畫圖,那麼卷軸部分就停留在那個角落。什麼可能導致這個問題?我有太多的代碼在這裏顯示。但這裏是我的繪製代碼:從核心動畫中產生奇怪效果的自定義NSScrollers

NSRect knobRect = [self rectForPart:NSScrollerKnob]; 

NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:knobRect 
                xRadius:CornerRadius 
                yRadius:CornerRadius]; 

[path setLineWidth:2]; 
[[NSColor colorWithDeviceRed:0.114 green:0.114 blue:0.114 alpha:0.3] set]; 
[path fill]; 
[[NSColor colorWithDeviceWhite:1.0 
         alpha:0.100] set]; 

    // Clip drawing to this path; draw nothing outwith the path. 
[path addClip]; 
[path stroke]; 

我已經試圖擺脫一切,除了填充,但它沒有工作。如果在調用setFloatValue時在超級視圖中調用setNeedsDisplay:YES,則此問題消失。

Clipping Issue http://idkz.org/b814ee5c875c9f44cc2d1345e4489420

回答

1

看來,這個問題的答案似乎是叫:
[self setArrowsPosition:NSScrollerArrowsNone]; 它神奇地運行:d

編輯,但我得到一個類似的效果,當我拖動滾動條。 :'(反正是有清除圖形不重繪滾動視圖本身:(

1

你可能發現了這一點被知道,但你的情況,下面的一段應該解決您的繪圖問題:?

-(BOOL)isOpaque { 
    return NO; 
}