【问题标题】:How to recognize tap over text view after it has became first responder?成为第一响应者后如何识别点击文本视图?
【发布时间】:2012-09-27 23:31:08
【问题描述】:

当 UITextView 被点击时,我希望它继续作为第一响应者工作,但我还需要触发其他事件。在 UITextView 不是第一响应者之前,UITapGestureRecognizer 工作得很好,但是在它获得焦点之后,点击不再被识别。

  UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapRecognized:)];
  singleTap.numberOfTapsRequired = 1;
  [txtView addGestureRecognizer:singleTap];
  [singleTap release];

  -(IBAction)singleTapRecognized:(id)sender
  {
     //Does not enter here with a tap after txtView is first responder
  }

【问题讨论】:

  • 你找到解决办法了吗?

标签: objective-c uitextview uitapgesturerecognizer becomefirstresponder


【解决方案1】:

ViewDidLoad()方法中使用以下代码,并确保包含

[yourTextView setUserInteractionEnabled:YES] 

UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:SEL(textViewTapped:)];

 [gestureRecognizer setNumberOfTapsRequired:1];  
 [yourTextView addGestureRecognizer:gestureRecognizer];`

【讨论】:

  • 我的代码中手势识别器的创建是在viewdidload中完成的。我看不出我的代码和这个代码之间的区别。我还尝试设置启用交互,它没有任何区别。我认为 UITextView 的交互启用默认为 true。
【解决方案2】:

您应该在手势识别器委托上实现以下方法:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer {
    return YES;  
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    相关资源
    最近更新 更多