iOS学习笔记

iOS-TextField协议方法

2016-08-15  本文已影响0人  Swift从入门到崩溃

在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
}
上一篇下一篇

猜你喜欢

热点阅读