So beschränken Sie den UITextField nur zahlen in Swift?
Ich soll dem Benutzer nur durch Eingabe numerischer Werte in einer UITextField
. Auf dem iPhone zeigen wir die numerische Tastatur, aber auf dem iPad kann der Benutzer wechseln Sie zu einer Tastatur.
Gibt es eine Möglichkeit zum einschränken der Benutzer, geben Sie nur numerische Werte in einem UITextField
?
müssen Sie ändern den eingegebenen text.
ja , aber in der ipad-Benutzer kann eingeben, alphabet noch nach, wenn wir stellen Sie die numerische Tastatur
Was meinst du mit ändern der text?
finden Sie unter diesem stackoverflow.com/questions/12944789/...
stackoverflow.com/questions/26919854/...
ja , aber in der ipad-Benutzer kann eingeben, alphabet noch nach, wenn wir stellen Sie die numerische Tastatur
Was meinst du mit ändern der text?
finden Sie unter diesem stackoverflow.com/questions/12944789/...
stackoverflow.com/questions/26919854/...
InformationsquelleAutor | 2015-06-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist meine 2 Cent. (Getestet auf Swift 2)
Dies ist nur ein kleines bisschen strenger. Kein Dezimalpunkt.
Hoffe es hilft 🙂
PS: ich nahm an, Sie sah nach dem delegieren sowieso.
Update: Swift 3.0 :
Sie können
aSet
nurCharacterSet.decimalDigits.invertedSet
wie können wir beides verwenden, überprüfen Sie Zeichen-und numberOfCharacters?
Es perfekt funktioniert ! Danke !
Perfekt für meine Bedürfnisse. Danke.
InformationsquelleAutor Mr H
UITextFieldDelegate
im viewDidLoad setzenyourNumbersTextField.delegate = self
was ist range?.
warum Sie nicht erwähnt UITextFieldDelegate??
Auswahl zurückgegeben wird UITextField-delegate-Methode
Erwähnung UITextFieldDelegate ist Grundvoraussetzung
InformationsquelleAutor Hiren Panchal
In swift und Xcode 4.1 9.4.1
Hinzufügen UITextFieldDelegate zu Ihrer Klasse
Dann schreiben Sie diesen code in Ihre viewDidLoad()
Schreiben dieses textfield-delegieren-Funktion
InformationsquelleAutor iOS
Swift 2.0
Für erlauben, nur zahlen und ein "." Dezimalzahl in uitextfield.
Super!!!!! Dank
supercool Antwort!!!
InformationsquelleAutor Cian
Akzeptieren dezimal-Werte in Textfeldern mit dem einzelnen (.)Punkt in Swift 3
Eigentlich habe ich überarbeitet, damit für Sie ein Komma als auch (wie in FR)
Bitte beachten Sie, dass nicht alle Gebietsschemas verwenden Sie die "." als Dezimaltrennzeichen. Sie möchten möglicherweise verwenden Sie Locale.aktuelle.decimalSeparator statt.
InformationsquelleAutor Raj Joshi
Diese Lösung funktioniert sogar, wenn der Benutzer wechselt Tastaturen oder versucht, fügen Sie eine nicht-numerische Zeichenfolge in das Textfeld ein.
Stellen Sie sicher, dass die
delegate
- Eigenschaft des entsprechenden Textfeldes.[string intValue]
wie bereits in einer vorherigen Antwort wird nicht funktionieren, weil, die Eigenschaft wahr ist (nicht null), auch wennstring
enthält nicht-numerische Zeichen. Laut der docs,intValue
0 nur dann, wenn "die Zeichenfolge beginnt nicht mit einer gültigen dezimal-text-Darstellung einer Zahl."gut eingefangen . 🙂
InformationsquelleAutor ndmeiri
Nur IPhone-Lösung
In welcher UITextField-Sie bekommen diese Werte aus, können Sie die Art der Tastatur, die Sie wollen, zu erscheinen, wenn jemand berührt, die innerhalb des Textfelds.
E. G. einer rein numerischen Tastatur.
Wie dieser screenshot:
Ipad
Dem iPad nicht unterstützt numeric-Tastatur, so dass Ihre Optionen sind entweder keine Unterstützung für das iPad, überprüfen Sie die Feld-post abschicken, oder Folgen Sie einem der anderen Vorschläge hier zu erstellen sane Verhalten während der Ausführung auf einem iPad.
Dies ist die einfache Antwort auf diese Frage!!! Nicht die richtige Antwort! Ich weiß!
Es ist nicht jede Antwort auf die Frage, die weder einfach noch Billig. Die Frage, nicht gefragt, wie die Tastatur zu ändern geben. Die Frage, ist zu Fragen, wie beschränken Sie die Eingabe. Diejenigen, die anders sind.
Die Frage ist: Wie einschränken UITextField nur zahlen in Swift? Also, wenn Ihre Tastatur ist mit Ziffernblock, ist es natürlich, die Anforderungen erfüllen.
Der OP fragt explizit für eine andere Lösung als die änderung der Tastatur-Typ. "Auf dem iPhone zeigen wir die numerische Tastatur, aber auf dem iPad kann der Benutzer wechseln Sie zu einer Tastatur."
InformationsquelleAutor Jamil Hasnine Tamim
Nummer verwenden formatter
Swift 4.x
InformationsquelleAutor SPatel
Hier ist eine einfache Lösung, müssen Sie das Ereignis "Bearbeiten geändert", um diese Methode in einer controller -
Swift 4
InformationsquelleAutor shbli
Hatte ich eigentlich getan, wenn die Arbeit durch die Big Nerd Ranch Buch, meine Lösung ist:
dieser lässt nur zahlen von 0-9 erlaubt "." wie gut ist komplizierter, als Sie erlauben nur ein "."
InformationsquelleAutor sgib
Während die meisten dieser Lösungen arbeiten, werden Sie sich bewusst, dass in einigen Lokalisierungen einem Dezimalzahlen getrennt mit einem "," und nicht einen "."
Den cleaner Weg, dies zu tun wäre
InformationsquelleAutor AlexLittlejohn
In diesem Fall ist der Benutzer in der Lage ist, zum eingeben von Symbolen wie: ^, %,/,+ ...
InformationsquelleAutor likarson
Erlauben nur zahlen und nur eine dezimal-Betreiber können Sie diese Lösung verwenden:
InformationsquelleAutor hprione
Getestet swift 3.0
InformationsquelleAutor iosLearner
Erweitern Sie Ihre view-controller wie diesem:
In der viewDidLoad-Funktion erweitern, um Ihren text-Feld wie diesem:
Und verwenden Sie dann die folgende Funktion:
Dieser wird nun sicherzustellen, dass der Benutzer eingeben kann nur dezimale Ziffern.
Swift 4 +
Akzeptiert nur die Nummer
und akzeptiert einen separator
InformationsquelleAutor Aftab Ahmed
InformationsquelleAutor akbar khan
Ich denke, Sie können erzwingen, ändern Sie den Tastaturtyp durch die Umsetzung UITextInputTraits-Protokoll, optional var keyboardType
InformationsquelleAutor Lukas
Als ob es nicht schon genug Antworten, hier ist meine. Ich denke, jedes Beispiel erlaubt Dezimaltrennzeichen ist fehlerhaft, entweder Lokalisierung ' oder kopieren/einfügen.
InformationsquelleAutor David
Im folgenden ist der code, den ich verwendet in Swift 3.0 angepasst von Herrn H ' s code. Unterschiede sind da:
a) Delegierter Funktion Erklärung hat sich in den Swift 3.0. Neue Erklärung hier
b) NSCharacterSet Erklärung geändert hat.
InformationsquelleAutor ChinLoong
Habe ich bearbeitet Raj Joshi-version zu ermöglichen, einen Punkt oder ein Komma:
InformationsquelleAutor Matthijs
im obigen code ist die Arbeit in swift 3
NSCharacterSet.decimalDigits
Sie sind auch die Buchstaben nur
NSCharacterSet.Briefe
und Großbuchstaben,Lowercaseand,alphanumerische Zeichen,Leerzeichen
verwendet denselben code
oder Siehe den Link
InformationsquelleAutor Ramprasath Selvam
Ermöglichen für einige charactors
InformationsquelleAutor Ilesh
Hier ist eine sauberere Lösung:
Für Dezimalzahlen addieren Sie einfach
.
Beispiel123456789.
InformationsquelleAutor Farhad
InformationsquelleAutor tem
Dies ist eine besser lesbare version, die nicht "0-9" plus ".":
InformationsquelleAutor Enraged
Setzen Sie diese Funktion in den "Absenden" oder "Speichern unter" - Methode, wenn es einen gibt.
InformationsquelleAutor den330
Können Sie shouldChangeCharactersInRange zusammen mit String-Erweiterung Methode um zu überprüfen, ob die Eingabe-Zeichenkette Zahl ist oder nicht.
InformationsquelleAutor Suhit Patil
Toten einfache Lösung für
Double
zahlen (halten Sie es daran, dass dies nicht die beste user-freundliche Lösung), in IhremUITextFieldDelegate
delegieren:InformationsquelleAutor Tomasz Wójcik
Können Sie diesen code verwenden, wenn Sie erlauben wollen, Dezimaltrennzeichen und/oder negative zahlen.
Aber dieser code ermöglicht es beispielsweise: "34." (dezimal-Trennzeichen am Ende), beim ändern des Textes. Also müssen Sie code hinzufügen, Beispiel: textFieldShouldReturn oder textFieldShouldEndEditing delegate-Funktionen.
Den code geschrieben in Swift 4, aber ich assueme dies ist kompatibel mit Swift 3.
Wenn Sie nicht zulassen möchten, dezimal oder negative zahlen, die Sie haben zu ersetzen Schlepptau variable mit der nächsten Zeile
InformationsquelleAutor Ferenc Kiss
Swift 3
InformationsquelleAutor ArgaPK