2016-07-13 10 views
1

Der Benutzer sollte nur a-z, A-Z und 0-9 eingeben. Ich zeige dem Benutzer das Tastaturlayout UIKeyboardType.ASCIICapable.Entfernen Sie alle nicht a-zA-Z- und Nicht-Nummer-Zeichenfolgen aus dem Textfeld

Wie kann ich nicht a-z, A-Z und 0-9 aus Zeichenfolge filtern, nachdem der Benutzer eine Zeichenfolge mit der Tastatur eingeben.

Wie kann ich dieses Problem lösen? Ich verwende Xcode 7 und schnell 2.

+3

Ist es nicht besser Benutzer zu filtern ** während ** der Benutzer eine Zeichenfolge eingibt? – vadian

+0

@vadian ja natürlich. Ich bin im Lernprozess der schnellen und App-Entwicklung und nicht sicher, wie kann ich diese Zeichen filtern, während Benutzer Zeichen eingeben – smartcoderx

+0

Schauen Sie sich Kumar's Antwort. – vadian

Antwort

1

Sie müssen sich mit Delegatmethode von UITextField

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
     let set: NSCharacterSet = NSCharacterSet.alphanumericCharacterSet().invertedSet 

     if string.rangeOfCharacterFromSet(set) != nil { 
     return false 
     } 
     return true 
    } 
+0

vielen dank. ist das "NSCharacterSet.alphanumericCharacterSet(). invertedSet" das gleiche mit der Liste der Zeichen, die Sie auflisten? – smartcoderx

+0

Ja, bearbeitete die Antwort bitte überprüfen. –

+0

@KumarKL können Sie bitte invertSet> invertedSet>! = Nil> false zurückgeben. Eigentlich ist es einfach 'return string.rangeOfCharacterFromSet (set) == nil' mit dem invertierten alphanumerischen Satz. – vadian

0

prüfen arbeiten, wenn die Umkehrung Ihrer akzeptierten Satz vorhanden ist:

if yourtextfield.text!.rangeOfCharacterFromSet(letters.invertedSet) != nil { 
    print("invalid") 
} 

Buchstaben sollten wahrscheinlich alphanumericCharacterSet(), wenn Sie auch Zahlen einschließen möchten.

+0

das funktioniert. Kann ich diese ungültigen Zeichen entfernen, wenn! = nil? – smartcoderx

+0

Sie sprechen über Drucken ("ungültig")? –

Verwandte Themen