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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top