为了账号安全,请及时绑定邮箱和手机立即绑定

设置UITextField的最大字符长度

设置UITextField的最大字符长度

iOS
qq_花开花谢_0 2019-06-18 15:54:34
设置UITextField的最大字符长度如何设置UITextField在iPhoneSDK上,当我加载一个UIView?
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

SWIFT 4

import UIKitprivate var kAssociationKeyMaxLength: Int = 0extension UITextField {

    @IBInspectable var maxLength: Int {
        get {
            if let length = objc_getAssociatedObject(self, &kAssociationKeyMaxLength) as? Int {
                return length            } else {
                return Int.max            }
        }
        set {
            objc_setAssociatedObject(self, &kAssociationKeyMaxLength, newValue, .OBJC_ASSOCIATION_RETAIN)
            addTarget(self, action: #selector(checkMaxLength), for: .editingChanged)
        }
    }

    @objc func checkMaxLength(textField: UITextField) {
        guard let prospectiveText = self.text,
            prospectiveText.count > maxLength            else {
                return
        }

        let selection = selectedTextRange

        let indexEndOfText = prospectiveText.index(prospectiveText.startIndex, offsetBy: maxLength)
        let substring = prospectiveText[..<indexEndOfText]
        text = String(substring)

        selectedTextRange = selection    }}

编辑:内存泄漏问题修复。


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 672 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信