[小技巧系列]textField使用小技巧

  1. 在页面中有多个textField时候,如何让前面的在没有输入文本的情况下,不允许结束编辑,不允许键盘“return”按钮按下后结束编辑模式(UITextField注销掉第一响应者)。使用方法是:
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
        if let text = textField.text {
            if text.isEmpty {
                return false
            }
        }
        return  true
    }

这里使用的是UITextField的委托协议中的函数 func textFieldShouldEndEditing(_ textField: UITextField) -> Bool ,当即将结束编辑模式的时候调用,函数返回true的时候,对应的UITextField注销掉第一响应者,结束编辑模式。
于是在此函数中对文本进行判断,若为空文本就返回false,不允许结束编辑模式。

  1. 上述提到键盘的“return”按下以后对用户来说就是想要完成编辑,于是在这个按钮按下后,应当得到响应。这里实现的函数是一个独立的操作,在实现了这个函数后,无论在什么情况下按下了键盘上的“return”按钮后就会调用该函数。在该函数中可以实现对对应的UITextField的行为作出合适的修改以满足你自己的需求,然后返回true,若返回false则就会忽略。
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        
     guard let text =  textField.text else {
           return false
     }   
     if text.count > 9 {
        textField.textColor = .systemRed
        let alert = UIAlertController(title: "ohh,老夫啰嗦一句:", message: "重要事项输入字符限制10字以内,包括符号等", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "奥,知道了", style: .cancel, handler: { (act) in
                textField.textColor = .label
        }))
        self.present(alert, animated: true, completion: nil)
             return true
     }
        return false    
}

代码中,检查了编辑框中已有的文本是否超过10个字,超了就提醒。其中对文本的颜色做了修改

  1. 先在说一下“讯飞输入法”右上角的向下的按钮,当没有待选文字时候便会显示,点击后,键盘就消失了,根据测试他的功能与UITextField有关。
 func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
        if let text = textField.text {
            if text.isEmpty {
                return false
            }
        }
        return  true
  }

当我们实现它时候,这里给的功能是:在没有输入文本的时候,文本框不会结束编辑模式。于是在这种情况下,点击“讯飞输入法”键盘右上角的“向下箭头图标”的按钮后,键盘不会消失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值