2010-07-18 3 views
1

Я создаю пользовательские NSScrollers для использования в NSScrollView. Но когда любой из супервизоров NSScroller активирует Core Animation. Я получаю эту проблему с рисунком, это огромная неприятность. Всякий раз, когда я просматриваю углы прокрутки, просматривайте клип скроллеров. Но если скроллер начинает рисовать в углу, часть скроллера остается в этом углу. Что может вызвать эту проблему? У меня слишком много кода, чтобы показать здесь. Но вот мой рисунок код:Пользовательские NSScrollers, имеющие странный эффект от Core Animation

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]; 

Я уже пытался избавиться от всего, кроме заливки, но не работал. Эта проблема исчезает, если я вызываю setNeedsDisplay: ДА на супер-представлении при вызове setFloatValue.

Clipping Issue http://idkz.org/b814ee5c875c9f44cc2d1345e4489420

ответ

1

, кажется, что ответ на проблемы, кажется, назвать:
[self setArrowsPosition:NSScrollerArrowsNone]; И это волшебно работает: D

Edit, но я получаю такой же эффект, когда я тащу скроллбар , : '(Есть в любом случае, чтобы очистить графику без перерисовки самого Scrollview :(

1

Вы, вероятно, узнали об этом на курсе, но в вашем случае, следующий фрагмент должен решить проблему рисования:

-(BOOL)isOpaque { 
    return NO; 
} 
Смежные вопросы