成为第一响应者后如何识别点击文本视图?

Posted

技术标签:

【中文标题】成为第一响应者后如何识别点击文本视图?【英文标题】: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
  

【问题讨论】:

你找到解决办法了吗? 【参考方案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;  

【讨论】:

以上是关于成为第一响应者后如何识别点击文本视图?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 如何使 inputaccessoryview 中的文本视图成为第一响应者?

触摸 contentview 后辞职第一响应者

在alerview被解雇后如何使webview成为第一响应者

如何使第一个文本输入成为第一响应者并使用 Eureka 表单显示键盘?

在警报中选择选项时,如何防止我的文本字段成为第一响应者?

UITextField 成为第一响应者后,UITableView 不会将单元格滚动到可见