Xcode
iOS
Swift

[swift3]数字のみ入力可能 + 最大値での制限ありのUITextField

More than 1 year has passed since last update.

数字のみ入力可能で最大値での制限のあるUITextFieldを作ろうと思ったがちゃんと動くものが見つからなかったのでメモ
UITextFieldの文字数制限とキーボードの収納 [Swift3.0]を参考にしました。

コード

@IBOutlet var textField: UITextField!

override func viewDidLoad() {
        super.viewDidLoad()
        NotificationCenter.default.addObserver(self,selector:#selector(textFieldDidChange),name: NSNotification.Name.UITextFieldTextDidChange,object: textField)
    }

@objc func textFieldDidChange(notification: NSNotification) {
        let textField = notification.object as! UITextField
        guard let text = textField.text else { return }
        guard let intText = Int(text) else { textField.text = ""; return }
        if intText > 1000 {
            textField.text = text.substring(to: text.index(text.startIndex, offsetBy: 3))
        }
    }