如何阻止鼠标拖动事件移动整个窗口? [可可]

时间:2010-07-17 22:57:23

标签: objective-c cocoa

我认为这应该是一个非常简单的问题,但我无法在文档中找到答案。

我想停止鼠标拖动我自定义nsview子类中(或开始)的事件,导致窗口被拖动到屏幕上。如何告诉窗口保持静止,以便我可以与视图交互而不是拖动整个窗口?感谢。

2 个答案:

答案 0 :(得分:4)

除了您是否处理mouseDragged之外,您可能需要覆盖mouseDownCanMoveWindow以返回NO,或覆盖isOpaque以返回YES。

答案 1 :(得分:2)

您需要在视图中实施mouseDragged:As documented,NSView的实现只是将消息传递给下一个响应者,这意味着它将最终命中窗口。 (为什么?请参阅“The Responder Chain” in the Cocoa Event-Handling Guide。)只要您没有调用超类实现,就可以自行响应消息。