2010-07-17 4 views
1

나는 이것이 매우 쉬운 것이어야한다고 생각하지만, 나는 문서에서 대답을 찾을 수 없다.마우스 끌기 이벤트가 전체 창을 움직이는 것을 멈추는 방법? [코코아]

사용자 정의 nsview 하위 클래스에있는 (또는 시작하는) 마우스 끌기 이벤트가 화면 주위로 드래그되는 것을 막으려 고합니다. 어떻게하면 전체 윈도우를 드래그하는 대신 뷰와 상호 작용할 수 있도록 윈도우를 계속 움직이게 할 수 있습니까? 감사.

답변

4

mouseDragged 처리 여부와 상관없이 mouseDownCanMoveWindow을 무시하고 NO를 반환하거나 isOpaque을 재정 의하여 YES를 반환해야 할 수 있습니다.

+0

고맙습니다. mouseDownCanMoveWindow/isOpaque가 정확히 내가 뭘 찾고 있었는지 확실하지 않습니다. – aks

2

보기에 mouseDragged:을 구현해야합니다. As documented NSView의 구현은 단순히 다음 응답자에게 메시지를 전달합니다. 즉, 해당 응답이 창을 끝내게됩니다. (이유는 “The Responder Chain” in the Cocoa Event-Handling Guide을 참조하십시오.) 슈퍼 클래스 구현을 호출하지 않는 한 메시지에 응답하여이를 방지합니다.

+0

나는 mouseDragged를 구현했는데, JWWalkers 대답은 속임수였다. 감사합니다. – aks

관련 문제