【发布时间】:2013-01-04 11:31:44
【问题描述】:
我将 NSTrackingArea 添加到我的视图中以捕获 mouseEntered/mouseExited 事件。有用。然后,当 mouseEntered 事件被捕获时,我会这样做
[self.window invalidateCursorRectsForView:self];
在- (void)resetCursorRects 方法中,我绘制图像,从中创建 NSCursor,然后:
[self addCursorRect:self.bounds cursor:myCursor];
它看起来工作得很好,但有时,当在视图光标上拖动鼠标(鼠标向下并拖动)时会闪烁(光标下会出现一些神秘的黑色四边形,它的大小非常适合我的光标大小。只有我的光标是圆形的。通过如果我的光标很小,问题就不会出现。当它变大时,它会开始闪烁。当没有其他绘图同时完成时,它不会出现。
可能是什么问题?
屏幕:
好时机:
糟糕的时刻:
【问题讨论】:
-
你的意思是“当没有其他图纸同时进行时,它不会出现。”在光标下绘制什么以及如何绘制?
-
我可以给你一个提示。 Mac OS X 仅对小光标使用硬件加速光标。如果它很大 - 它在合成屏幕图像时由窗口服务器绘制。因此,问题可能在于如何执行绘图。
标签: objective-c macos mouse-cursor