我想做的事
我有一个圆形自定义 NSView 子类,当鼠标悬停在视图的圆形部分上时,我想更改光标的外观,而不是在视图矩形落在圆圈之外的部分上时。
这是一个插图。我会用图像标签内联它,但我太新了,无法参与这些很棒的功能。
到目前为止我所知道的
我知道如何通过 NSCursor 改变光标的外观。我认为为矩形视图完成此操作的最佳方法是使用光标矩形。我知道我可以接收 mouseMoved 事件(并且应该在鼠标不在此视图上方时使用 mouseEntered 和 mouseExited 将其关闭),并且有一种简单、廉价的方法来确定某个点是否位于感兴趣的区域中。
那么有什么问题呢?
据我所知,系统不会将 mouseMoved 事件发送到不是第一响应者的视图。因此,如果我想在鼠标悬停在我的视图上时获取 mouseMoved 事件,我需要从当前拥有它的人那里窃取 firstResponder 状态。如果文本视图有焦点,只需将鼠标移到这样的视图上就会把它偷走,从可用性的角度来看这是不可接受的。
因此,我的问题归结为:有没有更好的方法来做到这一点?我可以在不成为第一响应者的情况下获得 mouseMoved 事件吗?
谢谢!
我会添加以下标签: custom-views mouse-events NSCursor firstResponder 但同样,我是 SA 菜鸟,所以我不能。