web-dev-qa-db-fra.com

Type de capitalisation UITextField - Application iPhone

Existe-t-il un moyen de définir autocapitalizationType pour un UITextField afin que la première lettre de chaque mot soit en majuscule par défaut?

Ceci est un exemple de ce que je veux

104
CodeGuy

Utilisation textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

Pour plus d'informations, veuillez lire: Référence du protocole UITextInputTraits

226
AlexVogel

Ce que nous voulons faire, c'est définir le autocapitalizationType du champ de texte.

Objectif c:

self.textfield.autocapitalizationType = UITextAutocapitalizationTypeWords

Rapide:

self.textfield.autocapitalizationType = .words

Il y a quelques options ici:

enter image description here

  • allCharacters équivaut à taper deux fois sur la touche majuscule, en gros capslock.
  • none est assez explicite, le clavier n'essaiera jamais de mettre les lettres en majuscule.
  • sentences essaiera de mettre en majuscule le prochain mot après une ponctuation de fin.
  • words essayera de mettre en majuscule chaque nouveau mot (après un espace), ce qui semble être exactement ce que vous recherchez.

Cette propriété peut également être définie à partir de l'inspecteur d'attributs du générateur d'interface lorsque le champ de texte approprié est sélectionné:

enter image description here

La "capitalisation" est la première option de ce groupe. Elle vient juste d'être passée en sélectionnant la taille de police minimale pour le champ de texte.

36
nhgrif

Définir la propriété capitalization sur "Mots" suggérera à l'utilisateur de saisir des mots en majuscules. Ceci peut être annulé par l'utilisateur en dé-décalant le clavier. La meilleure chose à faire est de capitaliser les mots dans le code:

NSString *text = [myTextField.text capitalizedString];
8
Evan Mulawski

Oui. Sur Interface Builder, dans l'inspecteur d'attributs Zone de texte, vous pouvez définir la propriété Capitalisation sur Mots.

7
Marsson

Il y a une réponse pour Obj-C, je suis ici pour Swift;

textField.autocapitalizationType = UITextAutocapitalizationType.words

ou de manière plus courte

textField.autocapitalizationType = .words
4
Kemal Can Kaynak

Vous pouvez même faire cela à partir du fichier Storyboard ou .xib. Il suffit de sélectionner le champ de texte et dans l'inspecteur d'attributs sur la droite, il y a une section Capitalisation où vous pouvez choisir ce que vous voulez. Dans votre cas, c'est la capitalisation "Mots".

1
mgm

Dans Xamarin.ios/Monotouch, cela a fonctionné pour moi:

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