zoukankan      html  css  js  c++  java
  • iOS: 让键盘消失的的4种方法

    转自:http://leopard168.blog.163.com/blog/static/168471844201422121310352/

    在iOS app中,只要用到编辑框(UITextField)的地方,就得处理键盘消失 (dismiss keyboard)。
    我先后用过4种方法,来处理键盘消失的问题。
    1. 通过UITextFiledDelegate,来释放第一响应者 (resignFirstResponder); 这种通过delegate释放键盘的代码如下: 

     -(BOOL)textFieldShouldReturn:(UITextField*)textField {

     [textField resignFirstResponder];

     returnYES;

    }

    以下3种方法是通过 响应事件来处理的:

    2. 通过 Done键的 DidonExit method,来 resignFirstResponder;

    3.  点击编辑框的背景图,让键盘消失。 方法: 将背景view 设为: UIControll。 UIView本身不能响应事件,而UIcontroll 是可以响应事件的。 UIControll 继承于 UIView;  通过调用 UIControll的 Touch Down 事件,让键盘消失;

    4. 放置一个 UIButton ,将这个UIButton 布满全屏,当点击非编辑区域时,其实就是点击这个巨型的Button。 在这个button 事件中, resignFirstResponder 即可。  

    -(IBAction)backgroundTap:(id)sender {

        [self.nameTextFieldresignFirstResponder];

      [self.passwordTextFieldresignFirstResponder];

    }

    说明:这个method 模拟了用户的两种行为: 

    1.点击keyboard上的done,让键盘消失;

    2.点击编辑框以外的区域,让键盘消失。

     

    特别说明一点:通过布满全屏的Button,这种方法要求:这个巨型的Button一定要放在最底层。否则的话,编辑框将无法接受输入的事件。

     

    方案点评:

    UITextFieldDelegateUIControll方案,处理键盘消失问题,这是一种大智慧。而巨型Button didOnExit 方法,虽然也能用,但从软件编程思想上看,只能算是一种小聪明罢了。

     

    小结:

    只要有输入框存在,就得处理如何让键盘消失的问题。当然,你可以仅仅处理点击“done”按钮,来让键盘消失。但为了让用户有更好的体验,需要同时处理非编辑框的区域的事件响应。

     

  • 相关阅读:
    js 文件的操作
    js重点基础知识 以及小案例_最简单的轮播图 简单的动态表格( encodeURIComponent()编码比 encodeURI()编码)
    2阶——数据库连接池 c3p0 , druid, dbcp (其实所有的连接池都实现了dataSource接口,就可以调用getconnection方法)
    2阶——JDBC,JDBCTemplate(操作数据库)
    vue + django 批量删除
    简单的模糊搜索 Vue + django
    vue 父子组件传参简单的分页
    vue 多对多反序列化上传图片
    模型里的 抽象类 表继承
    django 多对多反序列添加
  • 原文地址:https://www.cnblogs.com/wangpei/p/3737143.html
Copyright © 2011-2022 走看看