J'ai un UILabel, mais comment puis-je permettre à l'utilisateur de sélectionner une partie de son texte. Je ne veux pas que l'utilisateur puisse éditer le texte ni le label/textfield pour avoir une bordure.Autoriser l'utilisateur à sélectionner le texte de UILabel à copier
Répondre
Ce n'est pas possible avec UILabel
. Vous devez utiliser UITextField
pour cela. Désactivez simplement l'édition à l'aide de la méthode de délégation textFieldShouldBeginEditing
.
Mais cela aura la bordure 3D n'est-ce pas? –
J'ai utilisé UITextField il y a quelques semaines et je me souviens qu'il n'y avait pas de bordure (elle a été créée en xib). Si votre UITextField a une bordure, il suffit de lire la documentation pour savoir comment désactiver la bordure. – Yuras
http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextField_Class/Reference/UITextField.html [textField setBorderStyle: UITextBorderStyleNone] – Yuras
Vous utilisez créer un UITextView et rendre son .editable
à NO. Ensuite, vous avez une vue de texte qui (1) l'utilisateur ne peut pas éditer (2) n'a pas de bordure et (3) l'utilisateur peut sélectionner du texte à partir de lui.
Une version pauvre de copier-coller, si vous ne pouvez pas, ou n'avez pas besoin d'utiliser une vue de texte, serait d'ajouter un reconnaisseur de gestes à l'étiquette, puis copiez tout le texte dans le carton. Assurez-vous de faire savoir à l'utilisateur qu'il a été copié et que vous soutenez à la fois un simple geste du robinet et une pression longue, car il va chercher les utilisateurs qui essaient pour mettre en évidence une partie du texte. Voici un peu de code exemple pour vous aider à démarrer:
Inscrivez-vous le geste de reconnaissance sur votre étiquette lors de sa création:
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];
Ensuite gérer les gestes:
- (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
...
}
}
bonne réponse, mais vous devez ajouter une ligne de code: myLabel.userInteractionEnabled = YES; – Ilario
- 1. assigne le texte d'un UIlabel à un champ de texte
- 2. Copier le texte à partir de Windows
- 3. De NSArray à UILabel
- 4. Comment autoriser l'utilisateur à sélectionner plusieurs fichiers à télécharger?
- 5. Autoriser l'utilisateur à sélectionner du texte dans le mot vba macro
- 6. Autoriser seulement l'utilisateur à sélectionner un checkButton à la fois?
- 7. Réduire le texte dans UILabel
- 8. Texte UILabel chevauchant à la mise à jour?
- 9. Projet de déploiement Visual Studio: Autoriser l'utilisateur à sélectionner le fichier de configuration lors de l'exécution
- 10. jquery sélectionner le texte à partir du texte entre
- 11. Autoriser l'utilisateur à sélectionner une ligne UIPickerView en appuyant sur
- 12. Texte multicolore UILabel
- 13. Comment copier les données UITextField dans un UILabel
- 14. Comment pouvez-vous sélectionner le texte dans un div (pour copier dans le presse-papiers) à partir de javascript?
- 15. Mise à l'échelle du texte UILabel avec la vue parente
- 16. peut-on copier le texte presse-papiers à un tableau
- 17. Centrez le texte dans un UILabel
- 18. Autoriser l'utilisateur à sélectionner la plage de fichier de données à analyser?
- 19. Ajout de UILabel à l'UITableViewCell personnalisé
- 20. jquery sélectionner le texte
- 21. Autoriser juste texte numérique sur le champ de texte d'entrée
- 22. sélectionner un texte spécifique à la page et le supprimer
- 23. Impossible de définir le champ de texte sur UILabel
- 24. C#. Comment sélectionner et copier par programme le texte de l'application de console?
- 25. Plusieurs lignes de texte dans UILabel
- 26. Ancre UIButton à gauche d'un UILabel
- 27. Accès à l'objet UILabel crash
- 28. Copier le texte sur le site
- 29. Copier le texte sélectionné d'une zone de texte à une autre
- 30. Le texte UILabel ne contient pas de mot-clé
Utilisez https: //github.com/hoteltonight/HTCopyableLabel –