2010-07-17 104 views
1

我認爲這應該是一個非常容易的,但我無法找到文檔的答案。如何阻止鼠標拖動事件移動整個窗口? [可可]

我想停止鼠標拖動在我的自定義nsview子類中(或開始)導致窗口被拖動到屏幕上的事件。我怎麼能告訴窗口保持靜止,以便我可以與視圖進行交互,而不是拖動整個窗口?謝謝。

回答

4

除了您是否處理mouseDragged的問題外,您可能需要覆蓋mouseDownCanMoveWindow以返回NO,或覆蓋isOpaque以返回YES。

+0

謝謝,mouseDownCanMoveWindow/isOpaque正是我一直在尋找的,不確定我在文檔中錯過了它 – aks 2010-07-17 23:32:07

2

您需要在您的視圖中執行mouseDragged:As documented,NSView的實現只是將消息傳遞給下一個響應者,這意味着它最終會碰到窗口。 (爲什麼?請參閱「The Responder Chain」 in the Cocoa Event-Handling Guide。)只要您不調用超類實現,自己就可以防止該消息的響應。

+0

我做的是實現mouseDragged,JWWalkers的答案是訣竅。謝謝 – aks 2010-07-17 23:32:58