Pergunta

Quando tento editar textos em minha aplicação do iPhone (UITextfield), é auto-corrige a minha entrada.

Você poderia me dizer como posso desabilitar isso?

Foi útil?

Solução

UITextField* f = [[UITextField alloc] init];
f.autocorrectionType = UITextAutocorrectionTypeNo;        

Outras dicas

versão Swift

aterrei aqui à procura de uma versão Swift deste:

myInput.autocorrectionType = .No

Leia também a resposta por @MaikelS

Swift 3.0

textField.autocorrectionType = .no

Você pode usar o protocolo UITextInputTraits para conseguir isso:

myInput.autoCorrectionType = UITextAutocorrectionTypeNo;

Veja aqui para mais detalhes.

O Interface Builder também tem um campo suspenso para desativar isso. Como você está mais propenso a criar campos de texto no construtor de interface, olhar para ele lá. Você pode encontrá-lo na Atributos Inspector ao lado de 'correção'.

Você também pode definir isso no storyboard, escolhendo o 'atributos inspector' e sob 'correção' você pode escolher: 'Default', 'sim' e 'não' enter descrição da imagem aqui enter descrição da imagem aqui

+ (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);
  });
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top