所以这是我的问题,我有一个按钮,当悬停在上面时应该显示一个pointingHand光标图标。在你的日常情况下,它工作得非常好,将鼠标悬停在它上方可将光标更改为我期望的效果。然而问题在于我将光标留在我希望显示按钮的区域。
这是我遇到奇怪的光标问题的地方,我的光标会显示指向手,然后切换到常规箭头,然后切换到正常箭头,然后返回到常规箭头,然后它保持不变,直到我将光标移出并返回到视图中。
到目前为止,这是我在实现这一点时所拥有的。
基本上我已经覆盖了我的nsbutton子类中的resetCursorRects函数,
以下是我为跟踪区域启用的选项
NSTrackingArea(rect: bounds, options: [.mouseEnteredAndExited, .activeInKeyWindow, .inVisibleRect], owner: self, userInfo: nil)
override func mouseEntered(with theEvent: NSEvent) {
super.mouseEntered(with: theEvent)
resetCursorRects()
}
override func resetCursorRects() {
window?.invalidateCursorRects(for: self)
addCursorRect(bounds, cursor: cursor.value)
}
因此,除了在按钮加载时重置光标后,当光标位于按钮的跟踪区域内时,我明显地重置了光标。我不知道我在这里失踪了什么导致我所看到的行为。任何帮助将不胜感激。