我打开了NSPopover
,如果用户点击了应用中的其他位置,则弹出窗口会关闭。
但问题是目前在弹出关闭过程中消耗了mouseDown
事件。
是否仍然可以将mouseDown
事件传递给应用程序,还可以关闭popover?
答案 0 :(得分:1)
我遇到了同样的问题,因此我们更改为使用NSPopoverBehaviorSemitransient
作为行为类型。它不再窃取mouseDown:
,我们只是添加了一些额外的案例来手动关闭弹出窗口。
答案 1 :(得分:0)
您可以继承window
s contentViewController
s view
对象的子类。
我在故事板文件中这样做了。
在那里,实现mouseDown()
方法。在那里,您可以创建一个通知,可以在项目中的某个位置接收您需要了解鼠标事件的通知。
由于“根视图”捕获了几乎所有mouseDown()
个事件,因此您必须对其进行过滤,以便仅在显示弹出窗口时响应通知。
请勿忘记在执行结束时致电super.mouseDown()
。