2012-02-21 2 views
1

2012-02-21 11 : 59 : 18.106 textView [20977 : fe03]; target = < (작업 지연 =, 목표 =) >>UITextView에서 탭 이벤트 방지

2012-02-21 11 : 59 : 18.107 textView [20977 : fe03]; target = < (action = handlePan :, target =) >>

2012-02-21 11 : 59 : 18.108 textView [20977 : fe03]; target = < (action = oneFingerTripleTap :, target =)>; numberOfTapsRequired = 3>

2012-02-21 11 : 59 : 18.108 textView [20977 : fe03]; target = < (action = oneFingerDoubleTap :, target =)>; numberOfTapsRequired = 2>

2012-02-21 11 : 59 : 18.109 textView [20977 : fe03]; target = < (action = twoFingerSingleTap :, target =)>; numberOfTouchesRequired = 2>

2012-02-21 11 : 59 : 18.123 textView [20977 : fe03]; target = < (조치 = tapAndAhalf :, target =) >>

2012-02-21 11 : 59 : 18.124 textView [20977 : fe03]; target = < (작업 = twoFingerRangedSelectGesture :, target =) >>

2012-02-21 11 : 59 : 18.124 textView [20977 : fe03]; target = < (조치 = oneFingerTap :, target =) >>

2012-02-21 11 : 59 : 18.129 textView [20977 : fe03]; target = < (조치 = loupeGesture :, target =) >>

위의 UITextView의 gestureRecogniser 목록 위에 있습니다. 나는 UITextView에서 twoFingerSingleTap 이벤트를 방지해야하지만이 이벤트 만 필요합니다. 가능할까요?

답변

3

당신은 같은 것을 필요

for (UIGestureRecognizer *g in myTextView.gestureRecognizers) 
{ 
    if ([g isKindOfClass:[UITapGestureRecognizer class]]) 
    { 
     if (([(UITapGestureRecognizer *)g numberOfTouchesRequired] == 2) && ([(UITapGestureRecognizer *)g numberOfTapsRequired] == 1)) 
     { 
      [g setEnabled: NO]; 
     } 
    } 
} 
+0

작업이 성공적으로 수행됩니다. – benhi

+0

@Kyr Dunenkoff : 당신의 대답이 더 교육적 이라는데 동의합니다. +1. 그러나 우리 모두는 기성품 코드로부터 뭔가를 배웠습니다. –

4

UITextViewUIView의 다른 하위 클래스와 마찬가지로보기에 연결된 모든 제스처 인식기의 NSArray를 포함하는 gestureRecognizers 속성을 가지고 있습니다. 이 배열을 열거하고 찾고있는 인식기를 찾아서 사용하지 않도록 설정하십시오.

+0

TKS하지만 방법이 배열을 열거하는 방법을? – benhi

+0

및 사용 중지 방법 ?? – benhi

+1

적어도 설명서를 읽으려고 했습니까? 빠른 열거 - [https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocFastEnumeration.html]. 무언가를 사용하지 않으려면 - [object setEnabled : NO]; –