< meta http-equiv="description" content="因为UIView默认是不能关联方法调用的,而UIControl则不一样,它可以关联很多方法。而UIControl是UIView的子类,它有UIView的所有特性,于是我们可以把我们的UIView修改为UIControl类,这样再给它关联一个事 件,一般就是up in side,这样在这个关联的事件里我们dismiss所有的UITextField或UITextView. "/>

iOS让键盘消失的技巧

[来源] 达内    [编辑] 达内   [时间]2012-09-13

因为UIView默认是不能关联方法调用的,而UIControl则不一样,它可以关联很多方法。而UIControl是UIView的子类,它有UIView的所有特性,于是我们可以把我们的UIView修改为UIControl类,这样再给它关联一个事件,一般就是up in side,这样在这个关联的事件里我们dismiss所有的UITe...

  焦点在UITextField或UITextView中的时候,键盘会出现,想点一下背景就让键盘消失。这是在手持设备上服合用户的操作习惯。当然方法有很多,在这儿我说一个比较实用的方法。

  因为UIView默认是不能关联方法调用的,而UIControl则不一样,它可以关联很多方法。而UIControl是UIView的子类,它有UIView的所有特性,于是我们可以把我们的UIView修改为UIControl类,这样再给它关联一个事件,一般就是up in side,这样在这个关联的事件里我们dismiss所有的UITextField或UITextView.

  这儿有一个递归找view上所有的UiTextField或UITextView,并dismiss的主法:

  - (void)resignKeyBoardInView:(UIView *)view

  {

  for (UIView *v in view.subviews) {

  if ([v.subviews count] > 0) {

  [self resignKeyBoardInView:v];

  }

  if ([v isKindOfClass:[UITextView class]] || [v isKindOfClass:[UITextField class]]) {

  [v resignFirstResponder];

  }

  }

  }

  这个方法是不是很实用呀?实用就顶一个!你们的支持是我无限的动力。

资源下载