2012-05-15 5 views
0

Cocoa에서 간단한 폼 디자이너를 만들고 싶고 마우스를 사용하여 폼에서 컨트롤을 이동해야합니다 (클릭, 누르기, 이동, 놓기).코코아에서 마우스로 컨트롤 이동

이러한 이벤트를 가로 채기 위해 모든 컨트롤 클래스에서 새 클래스를 상속해야합니까? 모든 컨트롤에 대해 일반적으로 구현할 수 있습니까?

답변

0

한 가지 방법은 컨트롤이있는 모든 공간을 채우는 단일 커스텀 뷰를 만드는 것일 수 있습니다.이 뷰에서 마우스 이벤트를 구현하는 데 필요한 메서드를 구현하여 컨트롤 뷰에서 히트 감지를 수행하고 주위를 이동합니다. 이 접근법은 NSView의 하나의 커스텀 서브 클래스 만 필요로하며 서브 클래스를 만들지 않고 이동하려는 뷰나 컨트롤을 사용할 수 있습니다.

0

컨트롤을 포함 할 사용자 지정보기를 작성하십시오. -hitTest:을 무시하고 컨트롤을 무시하고 대신 self을 반환하십시오. 그런 다음 마우스 이벤트를 받으면 해당 이벤트가 적용되는 컨트롤을 파악하고 적절하게 이동하십시오.

+0

정확히 내가 필요한 것, 감사합니다! :-) –