如何有效地为NSView设置Cursor?

时间:2010-09-09 09:22:25

标签: objective-c cocoa mouse nsview

我有一个NSView正在绘制一组不规则形状(和重叠)的应用程序管理对象:显然无法通过有效使用非重叠矩形来描述。

我希望将光标更改为其中一个对象。 通常的方法似乎是设置跟踪rects以响应-(void)resetCursorRects,每个跟踪与不同的光标相关联,但我不能将其应用于这种情况。

我只知道在处理-(void)mouseMoved:(NSEvent *)theEvent消息时哪个对象在光标下最顶层...所以我需要更改光标。

这是否合适?什么时候NSView会尝试将光标设置为通常的箭头?我不想以闪烁的光标结束,因为NSView将其设置为默认的其他消息。

1 个答案:

答案 0 :(得分:6)

考虑使用跟踪区域Using Tracking-Area Objects。特别是,NSTrackingCursorUpdate。这样,您就可以专门响应各种类型的跟踪事件。我认为这有助于避免你所描述的情况。