Um zu verhindern, dass der Benutzer mehr als eine Dezimalzahl in das Textfeld eingibt und den Benutzer daran hindert, alphabetische Zeichen in das Textfeld einzugeben, habe ich versucht Code unten. Das Problem ist, dass ich nicht weiß, wie man sie innerhalb der Funktion überprüft und zwei If-Anweisungen habe, was bedeutet, dass die zweite nicht ausgeführt wird, da sie nie ausgeführt wird. Wenn ich den Code nehme, der die Anzahl der Dezimalstellen überprüft und den Zeichenprüfungscode belässt, funktioniert das perfekt. Wie kann ich sie beide arbeiten lassen?Alphabetische Zeichen in einem Textfeld deaktivieren (Teil meines Codes wird nicht ausgeführt)
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let existingTextHasDecimalSeparator = textField.text?.rangeOfString(".")
let replacementTextHasDecimalSeparator = string.rangeOfString(".")
let charactersNotAllowed = NSCharacterSet.letterCharacterSet()
let replacementTextHasLetter = string.rangeOfCharacterFromSet(charactersNotAllowed)
if existingTextHasDecimalSeparator != nil && replacementTextHasDecimalSeparator != nil {
return false
} else {
return true
}
if replacementTextHasLetter != nil {
return false
} else {
return true
}
}
Scheint jetzt offensichtlich .. Danke für die Antwort! – Anonan