2016-08-06 6 views
0

트랙 패드 이벤트를 읽는 데 문제가 있습니다. 트랙 패드에서 하나의 탭과 한 파인더의 드래그를 잡아야합니다. 또한 그것들을 구별하기 위해서. 한 번 탭하면 다음과 같이 작동합니다.Mac OS X에서 트랙 패드에서 한 손가락 드래그를 인식하는 방법

- (void)mouseUp:(NSEvent*)theEvent 
{ 
    CGFloat wdev2 = self.bounds.size.width/2; 
    CGFloat hdev2 = self.bounds.size.height/2; 

    NSPoint point = [theEvent locationInWindow]; 

    float x = (point.x - wdev2)/wdev2; 
    float y = (point.y - hdev2)/hdev2; 

    [_touchHandler handleMouseTouch:x And:y]; 
} 

드래그를 인식하는 방법은 무엇입니까? 나는 mouseDragged:을 시험해 보았다. 그리고 그것은 나에게 3 개의 파인더 팬 이벤트를주고있다.

미리 감사드립니다.

답변

0

NSGestureRecognizer 이외에 mouseDragged을 사용하고 싶습니다.

을의 mouseDragged :

이 메소드의 디폴트 구현은 아무것도하지 않습니다. 이 메서드를 사용하여 이 어떤 방식 으로든 제스처 인식기의 상태를 업데이트합니다.

제스처 인식기는 해당보기에서 발생하는 이벤트 (그리고 하위 뷰)를 모니터하지만 응답기 체인 자체에는 참여하지 않습니다. 제스처 인식기는보기가 수행되기 전에 이벤트를 수신합니다. delaysPrimaryMouseButtonEvents 속성을 사용하여 이벤트가 이보기로 전파되는지 여부를 제어하십시오.

NSGestureRecognizer와 함께 사용하면 원하는 효과를 얻을 수 있습니다.

AppKit Framework Reference>NSGestureRecognizer Class Reference

+0

나는 그하지만, 불행하게도, 원하는 얻을 수없는 행동을 한 일부 실험. 요점은 예상대로 마우스 (클릭, 클릭 + 끌기)로 작동하지만 트랙 패드에서는 작동하지 않는다는 것입니다. –