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


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


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.


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];

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.


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

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".


0

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

textField.AutocapitalizationType = UITextAutocapitalizationType.Words;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.