Мне нужно пересмотреть некоторые элементы управления. Нет проблемы с NSButton, но NSSlider имеет ошибки рисования, пока я держу мышь и перемещаю ручку. Если я отпущу мышь, она рисует правильно.Неисправные рисунки в какао с CoreGraphics на моем обычном NSSlider
Это код рисования (мой класс наследует от NSSlider):
- (void)drawRect:(NSRect)dirtyRect
{
//[super drawRect:dirtyRect];
CGContextRef c;
CGFloat y, r, p;
c = [[NSGraphicsContext currentContext] graphicsPort];
r = (dirtyRect.size.height*0.8)/2.0;
p = (dirtyRect.size.width-r*2) * ([self doubleValue]*0.01);
y = dirtyRect.size.height/2.0;
CGContextSetLineWidth(c, 2);
CGContextSetStrokeColorWithColor(c, [_fullLineColor CGColor]);
CGContextMoveToPoint(c, 0, y);
CGContextAddLineToPoint(c, dirtyRect.size.width, y);
CGContextStrokePath(c);
CGContextSetLineWidth(c, 5);
CGContextSetStrokeColorWithColor(c, [_valueLineColor CGColor]);
CGContextMoveToPoint(c, 0, y);
CGContextAddLineToPoint(c, p, y);
CGContextStrokePath(c);
CGContextSetFillColorWithColor(c, [_knobColor CGColor]);
CGContextFillEllipseInRect(c, CGRectMake(p, y-r, r*2, r*2));
}
Что я могу сделать, чтобы избежать этого?
хорошо. Спасибо! –