2012-02-21 264 views
1

2012-02-21 11:59:18,106 textView [20977:fe03]; target = <(action = delayed :, 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];;目標= <(action = tapAndAHalf:,target =)>>

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

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

2012-02-21 11:59:18.129 textView [20977:fe03]; target = <(action = 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 2012-02-21 14:25:25

+0

@Kyr Dunenkoff:我同意你的回答更具有教育意義。 +1。但我們都從現成的代碼中學到了一些東西。 – 2012-02-21 14:30:02

4

UITextView,與UIView的任何其他子類一樣,具有gestureRecognizers屬性,其中包含附加到視圖的所有手勢識別器的NSArray。枚舉這個數組,找到您要查找的識別器並將其禁用。

+0

TKS但如何枚舉這個數組? – benhi 2012-02-21 13:42:24

+0

以及如何禁用它? – benhi 2012-02-21 13:47:21

+1

你至少試過閱讀文檔嗎?快速枚舉 - [https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocFastEnumeration.html]。禁用某些東西 - '[object setEnabled:NO];' – 2012-02-21 13:51:51