数字のみ入力可能で最大値での制限のある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))
}
}