【发布时间】:2016-11-22 14:13:54
【问题描述】:
我有一个自定义的NSView 子类(例如)以下方法:
override func mouseDown(with event: NSEvent) { Swift.print("mouseDown") }
override func mouseDragged(with event: NSEvent) { Swift.print("mouseDragged") }
override func mouseUp(with event: NSEvent) { Swift.print("mouseUp") }
只要在视图内按下、拖动和释放鼠标(按钮),就可以正常工作。但是,当鼠标在视图内按下,移到视图外,然后才释放时,我从未收到mouseUp 事件。
P.S.:调用 super 实现没有帮助。
【问题讨论】:
-
我添加了这个来获取事件:
NSEvent.addLocalMonitorForEvents(matching: .leftMouseUp) -
@HeestandXYZ 不是应用中发生的 所有 鼠标上移事件的通用监视器吗?问题是关于检测这些事件本身的特定视图。
-
啊是的,没错,抱歉在我的用例中我只有一个视图。
标签: cocoa event-handling nsview appkit mouseup