Objective c 调用setNeedsDisplayInRect时,Antialias会额外绘制一行
当鼠标按在视图上时,下面的代码将绘制一条额外的线。这似乎是由反别名引起的。以前有人见过这个吗Objective c 调用setNeedsDisplayInRect时,Antialias会额外绘制一行,objective-c,cocoa,quartz-graphics,Objective C,Cocoa,Quartz Graphics,当鼠标按在视图上时,下面的代码将绘制一条额外的线。这似乎是由反别名引起的。以前有人见过这个吗 当你说“加行”是什么意思?你能提供一张图片吗?谢谢你看我的问题。因为我是新用户,所以我不能发布图片。这里有一个指向示例图像的链接。你在代码中画了两行。。。一个“额外”如何?我在多个应用程序中看到了这个问题。包括苹果素描样本。我正在使用OS 10.7.4,Xcode 4.3.3。单击视图后,会绘制第三条线。样本: - (void) drawRect:(NSRect)dirtyRect { [[N
当你说“加行”是什么意思?你能提供一张图片吗?谢谢你看我的问题。因为我是新用户,所以我不能发布图片。这里有一个指向示例图像的链接。你在代码中画了两行。。。一个“额外”如何?我在多个应用程序中看到了这个问题。包括苹果素描样本。我正在使用OS 10.7.4,Xcode 4.3.3。单击视图后,会绘制第三条线。样本:
- (void) drawRect:(NSRect)dirtyRect
{
[[NSColor whiteColor] setFill];
NSRectFill(dirtyRect);
[[NSColor blueColor] setStroke];
NSBezierPath *path1 = [NSBezierPath bezierPath];
[path1 moveToPoint:NSMakePoint(0.00, 9.00)];
[path1 lineToPoint:NSMakePoint(300.00, 8.00)];
[path1 stroke];
[[NSColor redColor] setStroke];
NSBezierPath *path2 = [NSBezierPath bezierPath];
[path2 moveToPoint:NSMakePoint(184.00, 15.00)];
[path2 lineToPoint:NSMakePoint(8.00, 159.00)];
[path2 stroke];
}
- (void) mouseDown:(NSEvent *)theEvent
{
[super mouseDown:theEvent];
[self setNeedsDisplayInRect:CGRectMake(0, 0, 369, 15)];
}