禁用NSView mousedown

时间:2012-03-22 19:58:55

标签: objective-c cocoa nsview nsscrollview nstrackingarea

我有一个NSScrollView,其中NSView设置为其文档视图。我试图在NSScrollView中获取mousedown事件,但NSView一直在拦截它。有没有办法阻止这种情况发生?

还有一种方法可以在视图的一个区域停止它,就像NSTrackingArea为鼠标控制一样。

提前致谢,

1 个答案:

答案 0 :(得分:1)

您可以覆盖子视图中的-mouseDown:,只是将事件转发给下一位响应者吗?

您也可以通过覆盖超级视图的-hitTest:来返回自身(当您不希望子视图接收事件时)或子视图(在子视图包含事件位置的所有其他情况下)。 / p>

关于您的上一个问题,您也可以使用-hitTest:完成此操作。如果事件发生在子视图的“禁区”中,请返回self

如果你走这条路线,一定要注意在任何给定时间使用的坐标系,并根据需要进行转换。