Deshabilitar sugerencias de acceso directo de keyboard UITextField

¿Hay una manera simple de eliminar sugerencias de acceso directo de keyboard de un UITextField ?

Es posible eliminar la corrección [textField setAutocorrectionType:UITextAutocorrectionTypeNo]; con: [textField setAutocorrectionType:UITextAutocorrectionTypeNo]; sin embargo esto como ningún efecto en atajos.

Afectando al shanetworkingMenuController tampoco aplasta esto.

 - (BOOL)canPerformAction:(SEL)action withSender:(id)sender { [UIMenuController shanetworkingMenuController].menuVisible = NO; return NO; } 

introduzca la descripción de la imagen aquí

Use esto solo

  textField.autocorrectionType = UITextAutocorrectionTypeNo; 

Resuelto esto implementando un método UITextFieldDelegate y configurando manualmente la propiedad de text de UITextField.

De forma pnetworkingeterminada, en el simulador puede probar este comportamiento escribiendo "omw" que debería sugerir "¡En path!" . El siguiente código bloqueará esto. Nota: esto también desactiva la corrección automática y comtesting la ortografía, que estaba bien en mi caso.

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // Pass through backspace and character input if (range.length > 0 && [string isEqualToString:@""]) { textField.text = [textField.text substringToIndex:textField.text.length-1]; } else { textField.text = [textField.text stringByAppendingString:string]; } // Return NO to override default UITextField behaviors return NO; } 
 textField.autocorrectionType = .No 
 UITextField* f = [[UITextField alloc] init]; f.autocorrectionType = UITextAutocorrectionTypeNo; 

La respuesta mencionada anteriormente puede no funcionar con la situación de corte / copy / pegado. Por ejemplo, al cortar y pegar text en UITextField, el resultado no está según la funcionalidad pnetworkingeterminada.

A continuación se muestra un enfoque similar:

 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ NSString *textFieldNewText = [textField.text stringByReplacingCharactersInRange:range withString:string]; if ([string isEqualToString:@""]) { // return when something is being cut return YES; } else { //set text field text textField.text=textFieldNewText; range.location=range.location+[string length]; range.length=0; [self selectTextInTextField:textField range:range]; } return NO; } //for handling cursor position when setting textfield text through code - (void)selectTextInTextField:(UITextField *)textField range:(NSRange)range { UITextPosition *from = [textField positionFromPosition:[textField beginningOfDocument] offset:range.location]; UITextPosition *to = [textField positionFromPosition:from offset:range.length]; [textField setSelectedTextRange:[textField textRangeFromPosition:from toPosition:to]]; } 

Use AutocorrectionType:

[mailTextField setAutocorrectionType: UITextAutocorrectionTypeNo];

Swift 3.xo superior:

 textField.autocorrectionType = .no