我認爲這應該是一個非常容易的,但我無法找到文檔的答案。如何阻止鼠標拖動事件移動整個窗口? [可可]
我想停止鼠標拖動在我的自定義nsview子類中(或開始)導致窗口被拖動到屏幕上的事件。我怎麼能告訴窗口保持靜止,以便我可以與視圖進行交互,而不是拖動整個窗口?謝謝。
我認爲這應該是一個非常容易的,但我無法找到文檔的答案。如何阻止鼠標拖動事件移動整個窗口? [可可]
我想停止鼠標拖動在我的自定義nsview子類中(或開始)導致窗口被拖動到屏幕上的事件。我怎麼能告訴窗口保持靜止,以便我可以與視圖進行交互,而不是拖動整個窗口?謝謝。
除了您是否處理mouseDragged
的問題外,您可能需要覆蓋mouseDownCanMoveWindow
以返回NO,或覆蓋isOpaque
以返回YES。
您需要在您的視圖中執行mouseDragged:
。 As documented,NSView的實現只是將消息傳遞給下一個響應者,這意味着它最終會碰到窗口。 (爲什麼?請參閱「The Responder Chain」 in the Cocoa Event-Handling Guide。)只要您不調用超類實現,自己就可以防止該消息的響應。
我做的是實現mouseDragged,JWWalkers的答案是訣竅。謝謝 – aks 2010-07-17 23:32:58
謝謝,mouseDownCanMoveWindow/isOpaque正是我一直在尋找的,不確定我在文檔中錯過了它 – aks 2010-07-17 23:32:07