美文网首页iOS学习笔记
iOS-TextField协议方法

iOS-TextField协议方法

作者: Swift从入门到崩溃 | 来源:发表于2016-08-15 21:19 被阅读0次

    在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
    }

    相关文章

      网友评论

        本文标题:iOS-TextField协议方法

        本文链接:https://www.haomeiwen.com/subject/dbousttx.html