Desactivar la lupa en UITextField
-
21-08-2019 - |
Pregunta
¿Hay una manera de evitar que el usuario mueve el cursor en un UITextField? Me gustaría que se quede al final de la cadena.
Solución
No hay manera de evitar que se mueva el cursor. Puede, sin embargo, evitar que la edición del texto excepto al final de la ejecución del
– textField:shouldChangeCharactersInRange:replacementString:
método en el delegado de su campo de texto.
Editar: también puede establecer userInteractionEnabled
a NO
de manera que el usuario no puede tocar el campo. becomeFirstResponder
llamar manualmente para que el campo se centran ya que el usuario no puede tocar para enfocar.
Otros consejos
Esta es una vieja pregunta, pero yo estaba buscando una respuesta a la misma pregunta, y se encontró una solución.
En realidad, es bastante simple para evitar que el usuario se mueva el cursor. Sólo subclase UITextField y proporcionar la siguiente implementación de caretRectForPosition:
- (CGRect)caretRectForPosition:(UITextPosition *)position
{
return [super caretRectForPosition:self.endOfDocument];
}
sin prescripción SUBCLASES .
Usted podría utilizar UITextFieldDelegate
. Esto hará que desactivar la selección de cristal de aumento y texto.
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
textField.userInteractionEnabled = NO;
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
textField.userInteractionEnabled = YES;
}
Nota:. Esto es sólo un bypass
Te sugiero para comprobar los gestureRecognizers propiedad.
Usted encontrará una gran cantidad de ellos en la matriz y puede ser que desee o bien eliminarlos todos o para encontrar los que activa el evento que desea interceptar y eliminar / reemplazarlo.
Lo utilicé para eliminar copiar / pegar y ampliación de funcionalidades de vidrio de un UITextField
No comprobar si puede desactivar la lupa, pero la forma recomendada para desactivar selectivamente comportamiento de edición en un UIResponder (y por lo tanto un UITextField) han es implementar canPerformAction:withSender
de UIResponder
.
Consulte documentación UIResponder
Tal vez si regresa "NO" para la acción de seleccionar y selectAll se puede desactivar.
Otra, más brutal, es camino para interceptar cualquier caso táctil y restablecer el cursor hasta el final.