2012-03-22 87 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