Skip to content

Instantly share code, notes, and snippets.

@daoseng33
Created September 19, 2018 09:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daoseng33/8fccaa285de093a4623ddf4ae68f2c1a to your computer and use it in GitHub Desktop.
Save daoseng33/8fccaa285de093a4623ddf4ae68f2c1a to your computer and use it in GitHub Desktop.
Let you set UITextField max length in storyboard or xib
// Set textfield max length
private var __maxLengths = [UITextField: Int]()
extension UITextField {
@IBInspectable var maxLength: Int {
get {
guard let l = __maxLengths[self] else {
return Int.max // (global default-limit. or just, Int.max)
}
return l
}
set {
__maxLengths[self] = newValue
addTarget(self, action: #selector(fix), for: .editingChanged)
}
}
@objc func fix(textField: UITextField) {
let t = textField.text
textField.text = t?.safelyLimitedTo(length: maxLength)
}
}
extension String {
func safelyLimitedTo(length n: Int) -> String {
let c = self
if c.count <= n { return self }
return String(Array(c).prefix(upTo: n))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment