Comment puis-je demander à UITextView de placer le curseur sur une ligne particulière (ligne 13, par exemple) lorsqu'elle apparaît?Accédez à une ligne particulière dans UITextView
Répondre
UITextView possède une méthode setSelectedRange: (NSRange) plage.
Si vous savez où se trouve la ligne de chaîne 13, dites l'emplacement 237, puis faites: [textView setSelectedRange: NSMakeRange (237,0)];
Si vous avez besoin de savoir où se trouve la ligne 13, vous avez plus de travail à faire. Je commencerais par regarder sizeWithFont, en me rappelant de couper environ 16 points de la largeur de votre textView afin qu'OSO obtienne les sommes correctes. (Cela dit, si vous avez des sauts de ligne, puis trouver juste l'emplacement du 13 (ou n-ième) « \ n ».)
Mise à jour suivant votre plus question dans le commentaire
Il y a beaucoup de façons de trouver la position du nième \ n. L'extrait suivant n'est pas joli, mais il fera l'affaire. Vous pouvez également utiliser rangeOfString et parcourir le "\ n". Dans cet extrait, si la ligne cible est supérieure au nombre de lignes, elle place le curseur à la fin. Le code suppose ici que vous avez une propriété UITextView appelée userEntry.
int targetLine = 3; // change this as appropriate 0=first line
NSRange range;
NSString* exampleString = @"Hello there\nHow is it going?\nAre you looking for a new line?\nA new line in what?\nThat remains to be seen";
NSArray* separateLines = [exampleString componentsSeparatedByString:@"\n"];
if (targetLine < [separateLines count])
{
int count = 0;
for (int i=0; i<targetLine; i++)
{
count = count + [[separateLines objectAtIndex:i] length] + 1; // add 1 to compensate \n separator
}
range = NSMakeRange(count, 0);
}
else
{
range = NSMakeRange([exampleString length], 0); // set to the very end if targetLine is > number of lines
}
[[self userEntry] setText: exampleString];
[[self userEntry] setSelectedRange:range];
[[self userEntry] becomeFirstResponder];
- 1. Limitation UITextView à une ligne
- 2. une ligne particulière dans didSelectRowAtIndexPath
- 3. Lire une ligne particulière dans une chaîne?
- 4. Accédez à VBA pour répéter une ligne de code spécifique
- 5. Accédez à une ligne spécifique dans le fichier, puis commencez à écrire après cette ligne
- 6. comment sélectionner une ligne particulière?
- 7. Ligne de dessin dans UITextView
- 8. Sélectionnez une ligne particulière dans Gridview
- 9. CSS à la ligne particulière dans JqGrid
- 10. Multi ligne uitextview
- 11. Comment passer efficacement à une ligne particulière dans un fichier?
- 12. Accédez à une variable globale
- 13. Ajout d'une nouvelle ligne à un UITextView
- 14. UITextView autoscroll à la dernière ligne
- 15. Comment entrer une nouvelle ligne dans UITextView dans IB
- 16. Interruption de ligne inutile dans UITextView
- 17. Comment obtenir une ligne avec une date particulière dans sqlite?
- 18. iOS - nouveau caractère de ligne dans UITextView
- 19. Comment supprimer une ligne particulière dans une table SQL?
- 20. contextmenu pour une ligne particulière dans une vue multiligne listview
- 21. comment sélectionner une ligne particulière d'une table?
- 22. nouvelles données de ligne dans UITextView
- 23. Comment obtenir une ligne particulière d'un fichier
- 24. Récupère une ligne de données particulière
- 25. Sélecteur div Jquery pour une ligne particulière
- 26. Choisissez une ligne particulière par groupe?
- 27. Ajout de ComboBox à un datagridview pour une ligne particulière
- 28. Contenu d'une ligne spécifique dans UITextView
- 29. curl pour une ligne/phrase particulière
- 30. Construire UITextview avec la ligne
alors comment puis-je trouver la nième occurrence de '\ n' dans un NSString? –
Merci. J'ai décidé de compter à targetline-1 à la place parce que cela m'amène au début de la ligne (= fin de la ligne précédente) –