在我的主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) { }
方法中,我希望能够为指定的每个跟踪区域运行不同的块。我如何才能分别识别每个跟踪区域?每个区域的唯一标识符是什么?
发布于 2015-06-13 01:54:41
一种方法是在创建跟踪区域时使用userInfo
字段。例如,为每个追踪区域添加不同的NSNumber
。您收到的NSEvent
对象具有一个userInfo
属性,该属性将为您检索此对象。
一种可能更优雅的方法是继承NSTrackingArea
的子类,因为NSEvent
也有一个trackingArea
属性。
https://stackoverflow.com/questions/30809085
复制相似问题