2011-09-14 3 views
1

나는 스 와이프 제스처를 사용해야하는 간단한 코코아 프로그램을 작성하고 있습니다. swipeWithEvent: 메서드를 서브 클래스로 구현 한 내 NSView에 있지만 프로그램을 시도 할 때 메서드가 호출되지 않습니다. 대신 rotateWithEvent: 메서드가 작동합니다. Mac OS 10.7 Lion에서 Xcode 4.1을 사용하고 있습니다.- (void) swipeWithEvent : (NSEvent *) 이벤트가 Lion에서 작동하지 않습니까?

rotateWithEvent:swipeWithEvent: 사이에 차이가 있습니까? 왜 내가 처음으로 전화를 걸고 회전하는 제스처를 할 때 동일한 조건에서 두 번째는 호출되지 않습니다. 내가 스 와이프 제스처를하면?

업데이트 : swipeWithEvent:rotateWithEvent: 방법을 확인하기위한 간단한 프로젝트도 만들었지 만 동작은 동일합니다.

답변

2

필자가 작성한이 샘플 코드를 살펴보십시오. https://github.com/oscardelben/CocoaNavigationGestures

+0

코드 용 탱크. 이제 작동합니다 (4 개의 손가락 제스처를 사용하도록 데스크톱 스위치를 활성화했습니다). swipeWithEvent :와 두 손가락 제스처 스 와이프 인식기에서 작동합니다. 두 번째 코드에서 다음 두 행에 주석을 달아야합니다. 'code' // if (! [self recognizedTwoFingerGestures]) // return; 왜 [defaults boolForKey : @ "AppleEnableSwipeNavigateWithScrolls"]가 항상 false를 반환했는지 알고 계십니까? 미리 감사드립니다. Peter – Peter

+0

afaik의 라이온에서만 사용 가능합니다. 문제가 해결되면 대답을 수락하십시오. –

+0

up-vote, 코드 공유에 감사드립니다. –

0

코드를 게시하면 가능하면 맨손으로 줄이는 것이 도움이 될 것이라고 생각합니다.

한 가지 살펴볼 것은 메서드 서명이 정의와 정확히 일치하는지 확인하는 것입니다. 이 경우 다음과 같아야합니다.

- (void) swipeWithEvent: (NSEvent*) event 
{ 
    NSLog(@"A swipe happened"); 
} 

정의가 일치하는지 확인하십시오. rotateWithEvent가 제대로 작동하고 있기 때문에이 문제는 거의 발생하지 않지만 때로는 오타가 들어올 수도 있습니다.

할 수있는 또 다른 방법은 아무것도하지 않고 스 와이프에 반응하는 샘플 프로젝트를 만드는 것입니다.). 이렇게하면 코드 나 뷰 계층 구조가 있는지 여부를 확인할 수 있습니다.

관련 문제