如何有效地为NSView设置Cursor?

Chr*_*cke 1 mouse cocoa objective-c nsview

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

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

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

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

Jos*_*zzi 6

考虑使用跟踪区域:使用跟踪区域对象.特别是,NSTrackingCursorUpdate.这样,您就可以专门响应各种类型的跟踪事件.我认为这有助于避免你描述的情况.