¿Hay alguna manera de evitar que el usuario mueva el cursor en un UITextField? Me gustaría que permanezca al final de la cadena.Deshabilitar lupa en UITextField
Respuesta
No hay forma de evitar que muevan el cursor. Puede, sin embargo, evitar que la edición del texto excepto al final mediante la aplicación del método de
– textField:shouldChangeCharactersInRange:replacementString:
de delegado de su campo de texto.
Editar: también puede establecer userInteractionEnabled
en NO
para que el usuario no pueda tocar el campo. Llame al becomeFirstResponder
manualmente para que el campo se enfoque porque el usuario no puede tocar para enfocar.
No sé que hay una forma integrada de hacerlo ... tal vez podría subclase UITextField y controlar los eventos táctiles usted mismo?
No he comprobado si puede desactivar la lupa, pero la forma recomendada para deshabilitar el comportamiento de edición en un UIResponder (y por lo tanto un UITextField) es implementar canPerformAction:withSender
de UIResponder
.
Ver UIResponder documentation.
Tal vez si regresa "NO" para la acción de seleccionar y selectAll se puede desactivar.
Otro, más brutal, es camino para interceptar cualquier caso táctil y restablecer el cursor hasta el final.
Le sugiero que compruebe la propiedad gestureRecognizers.
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.
que lo utilizaron para quitar copiar/pegar y funcionalidades de la lupa de un UITextField
Xcode me dice que UITextField "no tiene una colección de salida" para los reconocedores de gestos. – radven
Ésta 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 evitar que el usuario mueva el cursor. Sólo subclase UITextField y proporcionar la siguiente implementación de caretRectForPosition:
- (CGRect)caretRectForPosition:(UITextPosition *)position
{
return [super caretRectForPosition:self.endOfDocument];
}
Solo me gustaría añadir que, si bien esto impide que el cursor se mueva, no desactiva la lupa (al menos no en iOS 7). El título y la pregunta piden cosas diferentes. – iMaddin
NO SUBCLASES necesario.
Puede usar UITextFieldDelegate
. Hará deshabilitar la lupa & selección de texto.
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
textField.userInteractionEnabled = NO;
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
textField.userInteractionEnabled = YES;
}
Nota: Esto es sólo un bypass.
- 1. Cómo deshabilitar la lupa en UIWebview?
- 2. Lupa con zoom en UIImageView
- 3. ¿Puedo deshabilitar el icono Emoji en UITextField?
- 4. Cómo deshabilitar y ocultar un UITextField
- 5. ¿Forma fácil de deshabilitar un UITextField?
- 6. Desactivar lupa en UITextview
- 7. ¿Cómo deshabilitar/habilitar la clave de retorno en un UITextField?
- 8. efecto de lupa android
- 9. Deshágase de la lupa en la aplicación web iOS
- 10. iPhone, reproduzca el efecto de lupa
- 11. iOS 6 lupa click-work-around
- 12. UITextField en UITableViewCell Help
- 13. UITextPosition en UITextField
- 14. UITextField Ejemplo en Cocos2d
- 15. UITextField en un UITableViewCell
- 16. UITextField ¿texto en negrita?
- 17. sangría en UITextField
- 18. ¿Ajustar texto en UITextField?
- 19. Filtrar caracteres ingresados en un UITextField
- 20. UITextField focus
- 21. UITextField leftView
- 22. Personalizado UITextField
- 23. UITextField setVisible?
- 24. Android: ¿Cómo desactivar la lupa de selección en ICS?
- 25. ¿Cómo construir una lupa en WPF C# 4.0?
- 26. Eventos UiTextField
- 27. Agregar UITextField en UIView programmatically
- 28. Cómo deshabilitar la autocorrección de texto para un UITextField o teclado?
- 29. Capitalización de UITextField
- 30. Establecer UITextField Longitud máxima
Eso es lo que tengo ahora, pero es un poco flojo para el usuario cuando se mueven el cursor y escriba una clave y los caracteres añadidos al final de la cadena. No es ideal ... pero no es fatal. Buscando una manera fácil de desactivar toques en el UITextField. Puede ir a la ruta de la subclase si esa es mi única opción. – Meltemi
¿Puedo preguntar qué estás tratando de lograr? ¿Por qué no permite colocar el cursor? Pero sí, parece que simplemente configurar userInteractionEnabled = NO sería la mejor solución. –