美文网首页
关于UITextFiled的完成回调方法 TextFieldDi

关于UITextFiled的完成回调方法 TextFieldDi

作者: 哈南 | 来源:发表于2016-07-18 13:51 被阅读701次

    今天测试非要给一个textFiled加上字数限制功能,不能让其超过多少个字符,然后我看了一下貌似UITextFiled没有完成回调的代理方法.所以我用shouldChangeCharactersInRange这个方法

        func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
            if textField.tag == 101{
                if (textField.text?.characters.count)! + string.characters.count > 100{
                    showHint("标题最多输入100个字符")
                    let tempStr = textField.text! + string
                    textField.text = (tempStr as NSString).substringToIndex(100)
                    textField.resignFirstResponder()
                    return false
                }
            }
            return true
        }
    

    测试下来粘贴进来和直接打字的测试OK了,但是在联想输入的不调用这个回调方法.所以上网百度了一下发现可以这样做
    先给textFiled添加一个相应方法,然后实现这个方法就可以了,对于直接输入的,粘贴进去的,联想输入的都可以响应到

    titleTextFiled.addTarget(self, action: Selector("textFieldDidChange:"), forControlEvents: .EditingChanged)
    
        func textFieldDidChange(sender:UITextField){
            if sender.text?.characters.count > 100{
                showHint("标题最多输入100个字符")
                sender.text = (sender.text! as NSString).substringToIndex(100)
                sender.resignFirstResponder()
            }
        }
    

    相关文章

      网友评论

          本文标题:关于UITextFiled的完成回调方法 TextFieldDi

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