【问题标题】:Custom NSCursor blinks with a black quad自定义 NSCursor 以黑色四边形闪烁
【发布时间】: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


【解决方案1】:

因为我的 NSView 是 NSOpenGLView,所以我不得不删除 glClear(GL_COLOR_BUFFER_BIT) 行,因为在执行 glClear 时它会与 alpha 值争论。

【讨论】:

    猜你喜欢
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    相关资源
    最近更新 更多