Disabilita la correzione automatica di UITextField
-
05-07-2019 - |
Domanda
Quando provo a modificare i testi nella mia applicazione iPhone ( UITextfield
), corregge automaticamente il mio input.
Potresti farmi sapere come posso disabilitarlo?
Soluzione
UITextField* f = [[UITextField alloc] init];
f.autocorrectionType = UITextAutocorrectionTypeNo;
Altri suggerimenti
Versione Swift
Sono atterrato qui alla ricerca di una versione Swift di questo:
myInput.autocorrectionType = .No
Leggi anche la risposta di @MaikelS
Swift 3.0
textField.autocorrectionType = .no
È possibile utilizzare il protocollo UITextInputTraits
per raggiungere questo obiettivo:
myInput.autoCorrectionType = UITextAutocorrectionTypeNo;
Vedi qui per maggiori dettagli.
Interface Builder ha anche un campo a discesa per disabilitarlo. Poiché è più probabile che crei campi di testo nel generatore di interfacce, cercalo lì. Puoi trovarlo nella finestra di ispezione degli attributi accanto a "Correzione".
+ (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);
});
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow