美文网首页
UITextField、UITextView 字数限制

UITextField、UITextView 字数限制

作者: 随心_追梦 | 来源:发表于2021-01-27 10:40 被阅读0次

    iOS输入框字数限制,需要注意判断高亮状态,否则加入需要限制输入10个字,在输入9个字之后,再次使用系统拼音键盘就输入不了了。输入的拼音会被截取。正确做法如下:

    UITextfield

    nickNameTextfield.addTarget(self, action: #selector(nickNameValueChanged), for: .editingChanged)

        @objc func nickNameValueChanged() {
            guard let text = nickNameTextfield.text else {
                return
            }
            // 判断是否存在高亮字符,如果有,则不进行字数统计和字符串截断
            if let selectedRange = nickNameTextfield.markedTextRange {
                let position = nickNameTextfield.position(from: selectedRange.start, offset: 0)
                if position != nil {
                    return
                }
            }
            if text.count > 12 {
                nickNameTextfield.text = text.substring(to: 12)
            }
        }
    
    UITextView

    textView和textfield类似,只是不需要添加通知,直接使用代理方法判断即可。

       /// 限制输入字数
        func textViewDidChange(_ textView: UITextView) {
            // 判断是否存在高亮字符,如果有,则不进行字数统计和字符串截断
            if let selectedRange = textView.markedTextRange {
                let position = textView.position(from: selectedRange.start, offset: 0)
                if position != nil {
                    return
                }
            }
            if let text = textView.text, text.count > 12 {
                textView.text = text.substring(to: 12)
            }
        }
    

    相关文章

      网友评论

          本文标题:UITextField、UITextView 字数限制

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