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