我有一个nsview的子类,它包含以下nstrackingarea代码。但由于某种原因,鼠标事件不会在操场上触发。
正在调用viewWillMoveToWindow
,但似乎没有其他内容被激发。有人知道丢失了什么吗?
class MyView: NSView {
private var trackingArea: NSTrackingArea = NSTrackingArea()
// Other stuff omitted here...
// ...
override func viewWillMoveToWindow(newWindow: NSWindow?) {
// Setup a new tracking area when the view is added to the window.
trackingArea = NSTrackingArea(rect: self.bounds, options: [.MouseEnteredAndExited, .ActiveAlways], owner: self, userInfo: nil)
self.addTrackingArea(trackingArea)
}
override func updateTrackingAreas() {
self.removeTrackingArea(trackingArea)
trackingArea = NSTrackingArea(rect: self.bounds, options: [.MouseEnteredAndExited, .ActiveAlways], owner: self, userInfo: nil)
self.addTrackingArea(trackingArea)
}
// Mouse events
override func mouseEntered(theEvent: NSEvent) {
NSLog("MouseEntered")
}
override func mouseExited(theEvent: NSEvent) {
NSLog("MouseExited")
}
override func mouseDown(theEvent: NSEvent) {
NSLog("MouseDown")
}
}
最佳答案
根据2014年世界野生动物保护委员会会议:
游乐场几乎没有其他限制。
游乐场不能用于需要用户交互的东西。
所以我们非常支持显示实时视图,但您只能看到它们,不能触摸它们。
您可以找到原始视频this
关于xcode - Playground中的鼠标事件(NSTrackingArea)无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34442116/