UITextField-Typ für die automatische Großschreibung - iPhone App

112

Gibt es eine Möglichkeit, den Autokapitalisierungstyp für a UITextFieldso festzulegen , dass der erste Buchstabe jedes Wortes standardmäßig groß geschrieben wird?

Dies ist ein Beispiel für das, was ich will

CodeGuy
quelle
45
Auf der anderen Seite ist es schön, die UITextField-Großschreibung googeln zu können und diese in 2 Sekunden anzuzeigen, anstatt eine volle Minute zu verschwenden, um die Dokumentation zu öffnen und danach zu suchen. StackOverflow IS-Dokumentation.
Shaun Budhram
1
Das Stolpern über Fragen wie diese freut mich, dass 1) Menschen in der Lage sind, kohärente direkte Fragen zu stellen (unabhängig vom Umfang) und 2) Menschen die besten Kommentare abgeben
Will Von Ullrich

Antworten:

237

Verwenden textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

Weitere Informationen finden Sie unter: UITextInputTraits-Protokollreferenz

AlexVogel
quelle
2
Es hilft nicht, wenn Sie Text in ein Feld einfügen. In diesem Fall delegieren Sie die Texteingabe und ersetzen Sie den ersten Buchstaben jedes Wortes
HotJard
Möchten Sie noch etwas HotJard ausarbeiten? Ich möchte wissen, wie man einen Text einfügt und automatisch kapitalisiert.
Vnchopra
5
Es funktioniert nicht, ich habe es auf Xcode 6 iOS 8 Swift versucht. Ich habe es in Code und Interface Builder gemacht, beides funktioniert nicht.
Van Du Tran
10
Stellen Sie sicher, dass die Tastatur im Interface Builder auf Standard eingestellt ist. Sonst funktioniert es nicht
OscarVGG
3
Stellen Sie außerdem sicher, dass die Autokapitalisierung in den Betriebssystemeinstellungen (Einstellungen-> Allgemein-> Tastatur) aktiviert ist. Die iOS-Einstellungswerte überschreiben alles, was Sie im Textfeld festgelegt haben
Lope
38

Wir möchten die Textfelder festlegen autocapitalizationType.

Ziel c:

self.textfield.autocapitalizationType = UITextAutocapitalizationTypeWords

Schnell:

self.textfield.autocapitalizationType = .words

Hier gibt es einige Optionen:

Geben Sie hier die Bildbeschreibung ein

  • allCharacters ist dasselbe wie zweimaliges Drücken der Umschalttaste, im Grunde genommen Feststelltaste.
  • none ist ziemlich selbsterklärend, die Tastatur wird niemals versuchen, Buchstaben groß zu schreiben.
  • sentences wird versuchen, das nächste Wort nach einer Endzeichen-Interpunktion groß zu schreiben.
  • words Ich werde versuchen, jedes neue Wort (nach einem Leerzeichen) groß zu schreiben, was genau das zu sein scheint, wonach Sie suchen.

Diese Eigenschaft kann auch im Attributinspektor des Interface Builders festgelegt werden, wenn Sie das entsprechende Textfeld ausgewählt haben:

Geben Sie hier die Bildbeschreibung ein

"Großschreibung" ist die erste Option in dieser Gruppe, die gerade die Mindestschriftgröße für das Textfeld ausgewählt hat.

nhgrif
quelle
8

Wenn Sie die capitalizationEigenschaft auf "Wörter" setzen, schlägt der Benutzer vor, großgeschriebene Wörter einzugeben. Dies kann vom Benutzer überschrieben werden, indem die Tastatur nicht verschoben wird. Am besten schreiben Sie die Wörter im Code groß:

NSString *text = [myTextField.text capitalizedString];
Evan Mulawski
quelle
Dadurch wird die gesamte Zeichenfolge großgeschrieben. UITextAutocapitalizationTypeWords schreibt nur den ersten Buchstaben in jedem eingegebenen Wort groß.
Jacob
Obwohl dies nicht das war, was das OP wollte, fand ich es wirklich sehr nützlich! Ich hatte irgendwo einen NSString gespeichert, der alle in Großbuchstaben geschrieben war. Ich musste den Text eines UITextField mit der ursprünglichen Zeichenfolge vergleichen, und die Verwendung Ihrer Empfehlung ersparte mir, dass ich meinem Benutzer die Dinge erklären musste (ich ließ Objective c die ganze Arbeit
erledigen :)
7

Ja. In InterfaceBuilder können Sie im textField-Attributinspektor die Capitalization-Eigenschaft für Words einrichten.

Marsson
quelle
5

Es gibt eine Antwort für Obj-C, ich bin hier für Swift;

textField.autocapitalizationType = UITextAutocapitalizationType.words

oder kürzerer Weg

textField.autocapitalizationType = .words
Kemal Can Kaynak
quelle
Ich habe .words und .allCharacters getestet. Auf dem Simulator funktioniert es. Auf einem angeschlossenen iPhone X ist dies nicht der Fall. Xcode 10.1, iPhone 12.1.
Geohei
1
Ich werde nicht arbeiten, wenn in Einstellung -> Allgemein -> Automatische Korrektur / Automatische Großschreibung deaktiviert ist.
Sheetal Shinde
1

Sie können dies sogar über das Storyboard oder die XIB-Datei tun. Sie müssen nur das Textfeld auswählen und im Attributinspektor rechts befindet sich ein Abschnitt zur Großschreibung, in dem Sie auswählen können, was zu Ihnen passt. In Ihrem Fall ist es Großschreibung "Wörter".

mgm
quelle
0

In Xamarin.ios / Monotouch hat das bei mir funktioniert:

textField.AutocapitalizationType = UITextAutocapitalizationType.Words;
Daniele D.
quelle