我怎么能在NSView外面检测mouseDown事件?

时间:2013-09-18 09:01:08

标签: macos nsview mousedown

我在单击某个按钮时创建自定义NSView,如果您在NSView外部单击,我想关闭此自定义视图。但似乎我无法在此自定义NSView中接收mouseDown事件。有没有人知道如何适应它?非常感谢。

2 个答案:

答案 0 :(得分:1)

我想分享两个与NSEvent方法不同的其他解决方案,没有沙盒限制。

封面窗口。 它更多地涉及代码和一个很好的练习,可以学习窗口和视图的可能性。但值得学习和了解。

创建一个占用整个屏幕的无边框窗口。然后,无边界窗口可以处理鼠标事件。

跟踪区域。 这种方法类似

答案 1 :(得分:0)

您想使用NSEvent全局事件监视器。 然后,您可能需要将鼠标NSPoint转换为视图坐标,并使用函数NSPointInRect查看它是否在内部。