Tengo un UILabel, pero ¿cómo puedo permitir que el usuario seleccione una parte de su texto? No deseo que el usuario pueda editar el texto ni la etiqueta/campo de texto para tener un borde.Permitir al usuario seleccionar texto de UILabel para copiar
Respuesta
No es posible con UILabel
.
Debe usar UITextField
para eso. Simplemente desactive la edición usando el método delegado textFieldShouldBeginEditing
.
Pero eso tendrá el borde 3D ¿no? –
Utilicé UITextField hace unas semanas y recuerdo que no había borde (se creó en xib). Si su UITextField tiene un borde, simplemente lea la documentación para descubrir cómo deshabilitar el borde. – Yuras
http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextField_Class/Reference/UITextField.html [textField setBorderStyle: UITextBorderStyleNone] – Yuras
Se usa crear una UITextView y hacer que sea .editable
a NO. Luego tiene una vista de texto que (1) el usuario no puede editar (2) no tiene borde y (3) el usuario puede seleccionar texto de ella.
Una versión pobre de copiar y pegar, si no puede, o no necesita usar una vista de texto, sería agregar un reconocedor de gestos a la etiqueta y luego simplemente copiar el texto completo al portapapeles. No es posible hacer solo una parte a menos que use UITextView
Asegúrese de informar al usuario que ha sido copiado y que admite tanto un solo toque como una pulsación prolongada, ya que retomará a los usuarios que intentan para resaltar una porción de texto. Aquí es un poco de código de ejemplo para empezar:
Registrar los reconocedores gesto en su etiqueta cuando la crea:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textTapped:)];
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(textPressed:)];
[myLabel addGestureRecognizer:tap];
[myLabel addGestureRecognizer:longPress];
[myLabel setUserInteractionEnabled:YES];
El siguiente manejar los gestos:
- (void) textPressed:(UILongPressGestureRecognizer *) gestureRecognizer {
if (gestureRecognizer.state == UIGestureRecognizerStateRecognized &&
[gestureRecognizer.view isKindOfClass:[UILabel class]]) {
UILabel *someLabel = (UILabel *)gestureRecognizer.view;
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setString:someLabel.text];
...
//let the user know you copied the text to the pasteboard and they can no paste it somewhere else
...
}
}
- (void) textTapped:(UITapGestureRecognizer *) gestureRecognizer {
if (gestureRecognizer.state == UIGestureRecognizerStateRecognized &&
[gestureRecognizer.view isKindOfClass:[UILabel class]]) {
UILabel *someLabel = (UILabel *)gestureRecognizer.view;
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setString:someLabel.text];
...
//let the user know you copied the text to the pasteboard and they can no paste it somewhere else
...
}
}
buena respuesta, pero debe agregar una línea de código: myLabel.userInteractionEnabled = YES; – Ilario
- 1. Seleccionar texto para copiar Android EditText
- 2. UILabel Alinear texto al centro
- 3. Opacidad diferente para UILabel y el texto de UILabel
- 4. Copiar texto de una deshabilitada JTextField
- 5. Esquema para el texto UILabel
- 6. ¿Permitir al usuario seleccionar el idioma/configuración regional de la aplicación?
- 7. Selección de toda la tabla/texto para copiar al portapapeles
- 8. Crear trazo de texto para UILabel iphone
- 9. Seleccionar y copiar texto del cuadro de diálogo en wxPython
- 10. cómo restringir al usuario para copiar contenido web
- 11. UILabel parte visible del texto
- 12. Justificar texto en UILabel iOS
- 13. UILabel personalizado no muestra texto
- 14. Alignment de texto de párrafo de UILabel
- 15. ¿Permitir al usuario crear y modificar la tabla?
- 16. Use jQuery para seleccionar automáticamente el texto dentro de una etiqueta span al hacer clic en
- 17. Cómo seleccionar texto en el bloque de texto Silverlight 3.0
- 18. UISearchBar seleccionar todo el texto
- 19. C#. Cómo seleccionar programáticamente y copiar texto desde la aplicación de la consola?
- 20. Permitir nulo en clave externa al usuario. Django
- 21. MySQL copiar un usuario
- 22. Cómo permitir al usuario mover un control en el formulario
- 23. Responsive Design: Permitir al usuario también ver el sitio completo
- 24. UILabel con texto de dos colores diferentes
- 25. alineación de texto de UILabel derecha
- 26. UILabel obtener CGRect para la subcadena de texto
- 27. UILabel - cadena como texto y enlaces
- 28. En win32 C++ ¿cómo puedo habilitar el control de texto estático para copiar texto?
- 29. Centro de texto en un UILabel
- 30. hacer que el texto de UILabel negrita
utilizar HTTPS: //github.com/hoteltonight/HTCopyableLabel –