与文字有关的JC专题iOS Developer

UITextField限制字数

2016-06-30  本文已影响537人  CyrusCao

通常,我们需要对 UITextField 的最大输入字符数进行限制。在编辑的时候进行限制总比提交表单后提示错误强。

第一步:添加委托

使 UITextView 所在的 UIViewController 遵从 UITextViewDelegate 协议,这次我们使用 extension :

extension MyViewController: UITextFieldDelegate{
    //your code
}

第二步:实现协议中的监听方法

对于 UITextField 来说:

extension MyViewController: UITextFieldDelegate{
    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        guard let oldText = textField.text else {return true}
        let newLength = oldText.characters.count + string.characters.count
        return newLength <= 17
    }
}

首先使用 guard 语句确保当前文本框内有文字内容。然后计算字符串改变之后的新长度,等于旧长度加上新长度。最后返回一个布尔值,判断长度是否大小于等于17,如果小于则可以把内容显示到文本框中,否则再继续输入也没有反应。

对于 UITextView 来说:

该协议的监听方法的内容基本一致,只是把方法中的关键字名称替换了就可以了。可能还需要限制 UITextView 的输入行数:

textView.textContainer.maximumNumberOfLines = 10

上一篇下一篇

猜你喜欢

热点阅读