2012-03-22 86 views
1

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

还有一种方法可以在视图的一个区域中停止它,就像NSTrackingArea为mouseentered所做的一样。

由于提前,

回答

1

你可以在你的子视图覆盖-mouseDown:只是将事件转发到下一个响应者?

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

至于你最后的问题,你也可以用-hitTest:来完成。如果事件发生在子视图的“排除区域”中,请返回self

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

+0

完美 - 谢谢 – BenJacob 2012-03-23 21:05:53

+0

当然,很乐意提供帮助。 – 2012-03-24 00:15:24

+0

对不起回到这个,但是如果mousedown的位置超出了你指定的范围,是否有任何获得正常行为的方法?即返回通常返回的视图? – BenJacob 2012-04-02 12:03:34