2010-03-23 5 views
3

J'essaye d'implémenter un contrôle pour éditer le texte qui montrera le texte dans plusieurs couleurs. Aucune des solutions que j'ai essayées jusqu'ici n'a été assez bonne.Conseils sur l'implémentation d'une interface UITextView personnalisée sur l'iPhone?

  1. UITextView ne peut pas accomplir cela. Tout le texte doit être de la même couleur.
  2. L'utilisation de CoreGraphics pour dessiner le texte ne permet pas de sélectionner le texte.
  3. L'utilisation d'un UIWebView, les balises DIV et PRE ne peut pas être réglé sur contentEditable sur Safari Mobile.
  4. Lecture en cours avec l'utilisation d'une TEXTAREA hors écran et d'une DIV à l'écran pour afficher le texte affiché. Cela fonctionne plutôt bien, sauf le support de tous ces en même temps semble impossible: cliquer-pour-saisir, cliquer-déplacer-curseur, cliquer-maintenir-sélectionner/copier/coller.

Quelqu'un a des conseils sur cette situation?

J'ai essayé de trouver une bibliothèque pré-existante là-bas qui permettra d'accomplir cela dans une bonne façon, à pas de chance. Je suis ouvert à toutes les idées!

Répondre

3

Eh bien, tirant une idée de mon ... disons chapeau.

Pourriez-vous mettre un UITextField transparent sur une vue qui attire le texte? Si l'arrière-plan était clair et que la couleur du texte était claire, l'utilisateur ne pouvait pas le percevoir, mais il devait tout de même répondre à toutes les commandes. Lorsque l'utilisateur entre et édite le texte, vous pouvez dessiner les résultats sur la vue ci-dessous. Je pense que la sélection fonctionnerait sans aucune modification du tout. Lorsque l'utilisateur a sélectionné le texte en clair, il doit créer l'illusion de sélectionner automatiquement le texte dessiné.

+0

Cela se rapproche, même si le défilement devient un problème. Comment garder les deux volets de texte synchronisés les uns avec les autres pendant le défilement? – Alex

0

Voici une idée. Je n'ai aucune idée si cela fonctionnerait.

Si vous utilisez uniquement des couleurs, et non les styles, le texte d'un UIWebView avec couleur pourrait la mise en page du texte exactement de la même façon que UITextView. Vous pourriez mettre un UITextView avec de l'encre invisible (texte et arrière-plan entièrement transparent) sur un UIWebView et refléter le contenu avec des couleurs dans le HTML. Je suppose que vous pouvez faire défiler avec javascript avec la mise en page colorée.

+0

D'une certaine manière, j'ai raté que TechZen avait donné exactement la même réponse jusqu'à ce que j'ai posté ma réponse. – drawnonward

Questions connexes