使用UITouch隐藏UITextField/UITextView输入键盘的方法-iOS开发

很多朋友一直为如何实现点击UITextField控件之外便隐藏键盘的问题烦恼,
之前自己一直用的方法是把一个透明的,与当前view大小相同的按钮放在最底层,再捕获它的消息,进行resignFirstResponder操作,之后每个界面都这么做,非常繁琐。今天学习UITouch时发现一个一劳永逸的方法,将下面的代码放入相应的UIViewController实现代码中,便可以实现UITextField/UITextView在点击控件外的情况下隐藏掉输入键盘。
  1. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
  2.     UITouch *touch = [touches anyObject];
  3. //判断所点击view是否是UITextField或UITextView
  4.     if (![[touch view] isKindOfClass:[UITextField class]] && ![[touch view] isKindOfClass:[UITextView class]]) {
  5.         for (UIView* view in self.view.subviews) {
  6.             if ([view isKindOfClass:[UITextField class]]) {
  7.                 [view resignFirstResponder];
  8.             }
  9.         }
  10.     }
  11. }
复制代码

如果还需要实现点“换行”或"Return"返回,只需要将Did End On Exit事件链接至类定义中,构建事件处理方法,便能实现点击“换行”事件的捕获。


转载自 http://www.findhunter.cn/ios/5514.html


非常好用 的确解决问题了

你可能感兴趣的:(使用UITouch隐藏UITextField/UITextView输入键盘的方法-iOS开发)