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
.
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;
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
}
}
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
.
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.
Dans Swift 2:
myUITextField.autocorrectionType = UITextAutocorrectionType.No
Dans Swift 4.x:
myUTTextField.autocorrectionType = .no