首页 > 解决方案 > 光标奇怪的行为:重置为默认值

问题描述

在 NSView 上移动鼠标时,我将光标更改为 hand [[NSCursor pointingHandCursor] set]。我不会在代码中的任何地方将光标重置为箭头。

这很好用,但是如果我慢慢移动鼠标,我有时会看到它恢复为箭头。这是不希望的。这是 Cocoa 中的错误还是有解决方法?

-(void) mouseMoved:(NSEvent*) event {
  [[NSCursor pointingHandCursor] set];
}

同样,我不会在代码中的其他任何地方使用光标。我的 NSView 上没有其他视图。提前致谢!

标签: cocoacaretcursor-position

解决方案


如果您可以使用纯矩形区域,则在其中使用addCursorRect:cursor:etcresetCursorRects是一种简单的方法。

否则,您可以使用NSTrackingAreaswith NSTrackingCursorUpdateset 作为选项,并像您一样在光标上cursorUpdate:使用该set方法。

单独使用 set/push/pop 等不稳定,因为它与设置光标的其他视图不合作。


推荐阅读