web-dev-qa-db-fra.com

Désactiver la correction automatique de UITextField

Lorsque j'essaie de modifier des textes dans mon application iPhone (UITextfield), il corrige automatiquement ma saisie.

Pourriez-vous me faire savoir comment puis-je désactiver cela?

61
ebaccount
UITextField* f = [[UITextField alloc] init];
f.autocorrectionType = UITextAutocorrectionTypeNo;        
138
George Armhold

Version Swift

J'ai atterri ici à la recherche d'une version Swift de ceci:

myInput.autocorrectionType = .No

Lisez également la réponse par @ MaikelS

Swift 3.0

textField.autocorrectionType = .no
23
Dan Beaulieu

Vous pouvez utiliser le protocole UITextInputTraits pour y parvenir:

myInput.autoCorrectionType = UITextAutocorrectionTypeNo;

Voir ici pour plus de détails.

13
Jonas

L'Interface Builder possède également un champ déroulant pour le désactiver. Comme vous êtes plus susceptible de créer des champs de texte dans le générateur d'interface, recherchez-le ici. Vous pouvez le trouver dans l'inspecteur d'attributs à côté de "Correction".

9
MaikelS

vous pouvez également définir cela dans le storyboard en choisissant l '"inspecteur d'attributs" et sous "correction", vous pouvez choisir: "Par défaut", "oui" et "non" enter image description hereenter image description here

3
gutte
+ (void)disableAutoCorrectionsForTextfieldsAndTextViewGlobally {
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    struct objc_method_description autocorrectionTypeMethodDescription =
        protocol_getMethodDescription(@protocol(UITextInputTraits),
                                      @selector(autocorrectionType), NO, YES);
    IMP noAutocorrectionTypeIMP_TEXT_FIELD =
        imp_implementationWithBlock(^(UITextField *_self) {
          return UITextAutocorrectionTypeNo;
        });
    IMP noAutocorrectionTypeIMP_TEXT_VIEW =
        imp_implementationWithBlock(^(UITextView *_self) {
          return UITextAutocorrectionTypeNo;
        });
    class_replaceMethod([UITextField class], @selector(autocorrectionType),
                        noAutocorrectionTypeIMP_TEXT_FIELD,
                        autocorrectionTypeMethodDescription.types);
    class_replaceMethod([UITextView class], @selector(autocorrectionType),
                        noAutocorrectionTypeIMP_TEXT_VIEW,
                        autocorrectionTypeMethodDescription.types);
  });
}
2
Alok Singh