【发布时间】:2014-02-03 07:29:02
【问题描述】:
我正在尝试制作一个非常简单的绘画应用程序(Cocoa)。在我的自定义视图中,我有我的 drawRect: 方法,它在光标位置创建一个矩形:
- (void)drawRect:(NSRect)rect{
NSPoint point = [self.window mouseLocationOutsideOfEventStream];
NSRectFill(NSMakeRect(point.x, point.y, 5, 5)); }
我还实现了 mouseDown: 和 mouseDragged:,它们都告诉视图重绘区域 drawRect: 将填充。
NSPoint point = [self.window mouseLocationOutsideOfEventStream];
[self setNeedsDisplayInRect:NSMakeRect(point.x,point.y,5,5)];
但是,如果我稍微快一点地移动光标,绘制的对象之间就会出现间隙。此外,如果在旧矩形上绘制新矩形,则会显示白色边框。因此,我得出结论,我一定是使用了错误的工具集。当鼠标在视图中移动时,如何让矩形实时显示在鼠标 XY 上?
【问题讨论】: