zoukankan      html  css  js  c++  java
  • iOS开发点滴

    有时候系统显示的键盘会挡住视图中某些重要的控件,这个时候当用户按下换行键,就应该取消UITextField对象的第一响应(First Responder)状态而关闭键盘。

    1. 首先,视图控制器必须遵守UITextFieldDelegate协议

    @interface XXViewController ()<UITextFieldDelegate>

    2. 然后,需要再视图控制器中实现textFieldShouldReturn:

    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        [textField resignFirstResponder];
        return YES;
    }

    3. 运行应用,点击键盘,按下Return键后发觉没有反应,这是怎么回事呢?

    原来,我们忘记了让我们的文本框控件连接File's Owner

    点击文本框,按下Control键+鼠标拖动到左侧Placeholders中的File's Owner,这时候鼠标右键点击文本框,会发现Delegate中多了File's Owner

    再次运行,Ok成功了!

    4. 为了获得更好的用户体验,需要用户轻按视图背景区域,也能关闭键盘

    解决方案是想顶层视图发送endEditing:消息

    a. 将视图控制器中的视图的Custom Class从UIView改为UIControl

    b. 添加背景轻触响应事件

      b-1) 切换到辅助视图(Assistant View), 左侧是视图控制器的图形化界面,右侧是实现代码

      b-2) 选中视图控制区的顶层View, Control+鼠标左键拖动到实现代码

      b-3) 在弹出对话框中输入动作名称backgroundTapped

             千万不要忘记把事件类型改为Touch Up Inside!!

             输入以下代码:

    - (IBAction)backgroundTapped:(id)sender
    {
        [self.view endEditing:YES];
    }

    运行应用,Ok一些成功!!

  • 相关阅读:
    pyinstaller模块
    使用reduce方法数组去重
    Linux的关机与重启命令
    splice和slice的区别
    发现splice的新大陆
    text-decoration和outline
    前端中关于堆和栈的那些事
    git
    前端代码规范
    弹性布局在项目中的使用示例
  • 原文地址:https://www.cnblogs.com/davidgu/p/5366741.html
Copyright © 2011-2022 走看看