I would like to count the character when user keep typing in UITextField with swift.
Image of Field and Label:
I have already placed UITextField and UILabel, just haven't found any information on Stack overflow, also if you can do one in UITextView I also appreciate it.
To use the function below you need to implement the UITextFieldDelegate protocol
on the text field you want to count. This gets called every time the UITextField
s text changes:
Your class declaration should look something like this
class ViewController: UIViewController, UITextFieldDelegate
You should have an @IBOutlet
similar to this
@IBOutlet var txtValue: UITextField
Set the UITextField
s delegate to self
.
override func viewDidLoad() {
super.viewDidLoad()
txtValue.delegate = self
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let newLength = count(textField.text.utf16) + count(string.utf16) - range.length
mylabel.text = String(newLength) // Set value of the label
// myCounter = newLength // Optional: Save this value
// return newLength <= 25 // Optional: Set limits on input.
return true
}
Note that this function is called on all UITextField
s so if you have several UITextField
s you will need to add a logic to know witch one is calling this function.