Je cherche un non fort> privé de trouver la position du curseur ou du caret ( barre clignotant em>) dans un Il peut y avoir une question comme celle-ci déjà mais elle ne fournit pas de manière définitive pour le faire.
Et,
je ne veux pas dire le uitextview code> de préférence comme un
cgpoint code>. p>
nsrange code> de la zone sélectionnée. strong> p>
4 Réponses :
Il n'y a pas de ce type. Arrêt complet. P>
La seule chose que vous puissiez faire pour venir fermeture em> est à en parallèle, posez le texte à l'aide de CareText, de calculer la position du texte à partir d'un point et appliquez-la sur l'UITEXTVIEW. Ceci, cependant, fonctionne avec des sélections non-0 uniquement. De plus, CareText a un moteur de présentation de texte différent, par ex. Prend en charge Kerning, que UitextView ne le fait pas. Cela peut entraîner des écarts du texte rendu et défini et donner ainsi des résultats sous-optimaux. P>
Il n'y a absolument aucun moyen de positionner le caret. Cette tâche est même très si vous utilisez une API privée. C'est juste l'un des nombreux "tout simplement pas" em> dans iOS. P>
Donc, il n'y a absolument aucun moyen de calculer la position du caret?
Non. Pas avec uitextview. Comme je l'ai dit: Vous pouvez sortir le texte une seconde fois en utilisant Caretext et calculer la position là-bas, mais cela vous donne au mieux les estimations.
Je viens de l'avoir dans un autre fil:
Nécessite iOS 3.2 ou version ultérieure. P>
if (textview.selectedTextRange.empty) { // get cursor position and do stuff ... }
+1 Yep, ceci est sur le < code>
Ceci n'est pas implémenté dans IOS 4.3 ou moins, comme on pourrait penser lors de la lecture de la documentation. Ça ne fonctionne que dans iOS5 +
Swift 2.1 Version:
let cursorPosition = infoTextView.caretRectForPosition( (infoTextView.selectedTextRange?.start)! ).origin print("cursorPosition:\(cursorPosition)")
Nous utilisons simplement textview.selectedtextrange code> pour obtenir une plage de texte sélectionnée et que
textview. Caretrect (pour:) code> pour obtenir
CGRRECT code> Définition de la position du caret. p> p>
Pouvez-vous nous dire pourquoi vous voulez faire cela pour plus d'informations de fond?
C'est pour afficher un
uimenucontroller code>.