在textfield中有很多的协议方法,而这个方法能让我们在对textfield上完成一定的事件后,执行一定的事件,就让我们的textfield和现实联系了起来
首先我们还是先创建textfield
func creatTextFeild() {
//创建textfeild对象
let textFeild = UITextField.init(frame: CGRectMake(100, 100, 250, 60))
self.view.addSubview(textFeild)
textFeild.backgroundColor = UIColor.purpleColor()
//设置代理
textFeild.delegate = self
//显示清空按钮
textFeild.clearButtonMode = .Always
//再创建一个textfeild
//创建textfeild对象
let textFeild1 = UITextField.init(frame: CGRectMake(100, 200, 250, 60))
self.view.addSubview(textFeild1)
textFeild1.backgroundColor = UIColor.purpleColor()
}
}
让ViewController遵守UITextFieldDelegate协议,实现协议内容
extension ViewController: UITextFieldDelegate
func textFieldShouldReturn(textField: UITextField) -> Bool {
print("回车")
//收起键盘
textField.resignFirstResponder()
return true
}
//当按键盘上return的时候调用
//返回值,按回车键是否将联想的内容显示在输入框,一般返回true
//开始编辑的时候,调用这个方法
func textFieldDidBeginEditing(textField: UITextField) {
print("开始编辑")
}
开始编辑的时候调用,并且可以设置是否让当前的textfeild是否可以编辑
//参数1.委托
// 返回值:是否可以开始编辑true->可以编辑,
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
print("???")
return true
}
将要结束的时候调用。并且可以设置是否可以结束编辑
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
//如果textfeild中的字符个数大于8就结束编辑
if textField.text?.characters.count>7{
return true
}else{
return false}
}
编辑结束的时候调用这个方法
func textFieldDidEndEditing(textField: UITextField) {
print("结束编辑")
}
在键盘上没次点击一个键都会调用这个方法
//参数1.委托
//参数2.当前点击的按键对应的值,在输入框中的字符所在的范围
//参数3.当前在键盘上点击的按键对应的值
//返回值,是否将从键盘输入的内容显示在textfeild上
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
print(range)
print(string)
//如果是数字就不能显示在textfeild上
if string>="0" && string<="9"{
return false
}else{
return true}
}
点击清空按钮是否可以将textfeild中的内容请看true可以清空,false不能清空
func textFieldShouldClear(textField: UITextField) -> Bool {
return false
}