在我的主要NSWindow,我在不同的NSTextFields周围设置了多个跟踪区域(在下面表示为' obj')
var track: NSTrackingArea = NSTrackingArea(rect: obj.bounds, options: NSTrackingAreaOptions.MouseEnteredAndExited | NSTrackingAreaOptions.ActiveAlways | NSTrackingAreaOptions.CursorUpdate , owner: self, userInfo: nil)
obj.addTrackingArea(track)
在override func mouseEntered(theEvent: NSEvent) { }
方法中,我希望能够为我指定的每个跟踪区域运行不同的块。我怎样才能分别识别每个跟踪区域?每个区域的唯一标识符是什么?
答案 0 :(得分:3)
执行此操作的一种方法是在创建跟踪区域时使用userInfo
字段。例如,为每个跟踪区域添加不同的NSNumber
。您收到的NSEvent
对象有一个userInfo
属性,可以为您检索此对象。
可能更优雅的方法是继承NSTrackingArea
,因为NSEvent
也有trackingArea
属性。