UIButton在UITextView成为第一响应者后不会触发触摸事件。

4
我有一个UITextView,应该在控制器加载时成为第一个响应者(显示键盘)。唯一的问题是,我已经“填充”了两个UIView,每个UIView都包含一个UIButton。当UITextView还不是第一个响应者时,这些按钮上的触摸事件确实有效,但是在UITextView成为第一个响应者之后,UIButtons就不再响应任何tap-events了。
我该如何确保在textview成为第一个响应者时,按钮仍然可以正常工作?
2个回答

0
希望这对你有用。它对我有效。
在UIButton的IBAction方法中,检查您的文本字段是否是第一个响应者。 如果它是第一个响应者,请辞去它。 这将关闭键盘并执行按钮操作。
-(IBAction)btn:(id)sender
 {
  if ([txt isFirstResponder]) 
   {
    [txt resignFirstResponder];
   }
 UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"hi" message:@"Hello" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
 [alert show];
}

Button action plus resigning first responder


这个不起作用,因为添加到按钮的IBAction根本没有被触发。它从未进入那个方法。 - Terrabythia
@SanderBruggeman:你能添加你的IBAction代码吗?因为它对我来说很好用。 - Midas

0
将按钮初始化更改为lazy可能会解决问题,正如在这个答案中所建议的那样。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接