自定义NSCursor闪烁黑色四边形

hoc*_*man 6 macos objective-c cursor

我在我的视图中添加了NSTrackingArea以捕获mouseEntered/mouseExited事件.有用.然后,当我捕获mouseEntered事件时

[self.window invalidateCursorRectsForView:self];
Run Code Online (Sandbox Code Playgroud)

- (void)resetCursorRects方法中我绘制图像,从中创建NSCursor然后:

[self addCursorRect:self.bounds cursor:myCursor];
Run Code Online (Sandbox Code Playgroud)

看起来效果不错,但有时,当拖动鼠标(鼠标向下拖动)在视图光标上闪烁时(光标下方出现一些神秘的黑色四边形,其大小完全符合我的光标大小.只有我的光标是圆形.顺便说一下如果我的光标很小,则不会出现问题.当它变大时会开始闪烁.并且在没有其他绘图同时进行时它不会出现.

可能是什么问题呢?


屏幕:

好时刻: 在此输入图像描述

坏时刻: 在此输入图像描述

hoc*_*man 0

因为我的 NSView 是 NSOpenGLView,所以我必须删除glClear(GL_COLOR_BUFFER_BIT)行,因为在执行glClear此操作时会与 alpha 值发生冲突。