Erweitern Sie Ihren View Controller folgendermaßen:
class MyViewController: UIViewController, UITextFieldDelegate
Erweitern Sie in der viewDidLoad-Funktion Ihr Textfeld folgendermaßen:
myTextField.delegate = self
Und dann verwenden Sie die folgende Funktion:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let isNumber = CharacterSet.decimalDigits.isSuperset(of: CharacterSet(charactersIn: string))
let withDecimal = (
string == NumberFormatter().decimalSeparator &&
textField.text?.contains(string) == false
)
return isNumber || withDecimal
}
Dadurch wird sichergestellt, dass der Benutzer nur Dezimalstellen eingeben kann.
Swift 4 + akzeptiert nur die Nummer und akzeptiert ein Trennzeichen