Le curseur ne s'affiche pas dans UITextView
Quelqu'un peut penser à une raison pour que le curseur clignotant n'apparaîtra pas dans un UITextView
? J'ai un contrôle personnalisé qui est juste une sous-classe de UIView
et il a un UITextView
, mais le curseur ne s'affiche pas lorsqu'il obtient le focus. Le clavier s'affiche, et le texte s'affiche à mesure que vous tapez, mais il n'y a pas de curseur, et je ne peux pas comprendre pourquoi.
Toute pensée?...
- Est le textview un UITextView ou une sous-classe de UITextView?
- Le textview est juste une norme UITextView. Pas une sous-classe et pas de comportement personnalisé.
- Dans iOS 7, j'ai vu le curseur déplacé, de la barre de navigation dans le simulateur pendant que l'utilisateur est en train de taper. Le problème disparaît sur un périphérique. Est-ce que votre problème se produit sur un appareil?
Vous devez vous connecter pour publier un commentaire.
Vous ont peut-être changé la teinte de la couleur dans votre personnalisé UITextView. Si la teinte de la même couleur que la couleur d'arrière-plan (normalement blanc), alors il sera invisible.
Vous pourriez être mal un
contentSize
et/ou le cadre pour le composant de sorte qu'il est trop petit pour être visible ou le contrôle est hors de l'écran. S'il vous plaît aller sur Simulateur deDebug->Color Blended Layers
pour voir si ces valeurs sont définies correctement.EDIT:
Avec de nouveaux Xcodes (probablement introduit dans Xcode 6) vous pouvez déboguer ce genre de questions en cliquant sur "Debug Vue de la Hiérarchie" (c'est l'une des icônes de la barre du bas)
La zone de texte affiche le curseur, mais vous n'êtes pas en mesure de voir la couleur, tout simplement parce que la teinte de la couleur de votre champ de texte est défini par défaut de la plupart probablement que dans mon cas c'était.
Sélectionnez simplement vous textField dans le storyboard et Sélectionnez le lien de la couleur de votre choix. Reportez-vous à l'image ci-jointe.
J'ai changé la teinte de la couleur de l'ensemble de mes UITextViews et le curseur a commencé à montrer sur la prochaine génération.
Solution Simple semble de travail par l'introduction d'un retard et d'appeler ensuite firstResponder, comme suit:
Dans mon cas, j'ai appelé
becomeFirstResponder
dans unviewDidLoad
méthode. J'ai déménagé à l'appel enviewDidAppear
et il a travaillé pour moi.Pour moi, le problème a été causé par l'incorporation d'un
UITextField
dans unUIToolbar
. Une fois que j'avais remplacé le conteneur pour un simpleUIView
, le curseur a de nouveau fonctionné.La solution ci-dessus n'a pas fonctionné dans mon cas. Le problème dans mon cas est que la
UIView
qui agit en tant que le curseur aisOpaque
ensemble defalse
lorsque leUITableViewCell
'sselectionStyle
est rien maisnone
. Cela semble se produire uniquement en vertu d'une condition de course je n'ai pas réussi à bas encore.FWIW voici comment j'ai réglé ce:
UITextFieldView
UIView
que représenterait le curseur dans la position correcte, mais il n'apparaît pas dans l'INTERFACE utilisateur.UIView
et sélectionnez "Description d'Impression...". La description indiqueOPAQUE=NO
Malheureusement, la
UITextSelectionView
classe qui possède ceUIView
est privé et donc il n'y a pas de non-hacky moyen de faire la mise à jourisOpaque
.Cela ne semble pas être un problème dans l'exécution de chaque, cependant, voici la relation entre mon point de vue.
Mon texte à afficher délégué
et ma table délégué: