web-dev-qa-db-fra.com

Désactiver le clavier iOS8 Quicktype par programme sur UITextView

J'essaie de mettre à jour une application pour iOS8, qui dispose d'une interface de discussion, mais le nouveau clavier Quicktype masque l'affichage en mode texte. Je souhaite donc le désactiver par programme ou dans le générateur d'interface. 

Est-il possible ou seulement les utilisateurs peuvent le désactiver dans les paramètres de l'appareil? 

Je sais qu’il existe une question/réponse qui résout ce problème avec un UITextfield, mais je dois le faire avec un UITextView.

67
rihe

Vous pouvez désactiver les suggestions de clavier/autocomplete/QuickType pour un UITextView qui peut bloquer le texte sur des écrans plus petits, comme le 4S, comme indiqué dans cet exemple.

avec la ligne suivante:

myTextView.autocorrectionType = UITextAutocorrectionTypeNo;

enter image description hereenter image description here

Et plus loin si vous ne souhaitez faire cela que sur un écran spécifique, comme cibler le 4S

if([[UIDevice currentDevice]userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
    if (screenHeight == 568) {
        // iphone 5 screen
    }
    else if (screenHeight < 568) {
       // smaller than iphone 5 screen thus 4s
    }
}
122
mihai

Par souci d'exhaustivité, j'aimerais ajouter que vous pouvez également le faire dans le Interface Builder.

Pour désactiver les suggestions de clavier sur UITextField ou UITextView - dans le Attributes Inspector, définissez Correction sur No.

enter image description here

51
Nikita Kukushkin

J'ai créé une classe de catégorie UITextView avec la méthode suivante:

- (void)disableQuickTypeBar:(BOOL)disable
{
    self.autocorrectionType = disable ? UITextAutocorrectionTypeNo : UITextAutocorrectionTypeDefault;

    if (self.isFirstResponder) {
        [self resignFirstResponder];
        [self becomeFirstResponder];
    }
}

Je souhaite qu'il y ait une approche plus propre tho. De plus, cela suppose que le mode de correction automatique était Default, ce qui peut ne pas être toujours vrai pour chaque affichage de texte.

7
DZenBot

Dans Swift 2:

myUITextField.autocorrectionType = UITextAutocorrectionType.No
2
Rao

Dans Swift 4.x:

myUTTextField.autocorrectionType = .no
0
Yogesh Bharate