9
votes

iPhone UitextView qui est désactivé devient le premier répondeur lorsqu'il est réactivé

J'ai une application qui a des vues de texte sur l'un des contrôleurs. Lorsque l'application est en cours de traitement, ces vues de texte sont désactivées et leur interaction utilisateur désactivée.

Le problème est que lorsque les vues de texte sont réactivées, elles répondent à toutes les touches réalisées lorsqu'elles sont désactivées.

Ceci est fait encore pire car ils deviennent le premier répondeur, mais le code que j'ai écrit pour TextVievididbeginetiting n'est pas exécuté ... Cela signifie que, au lieu d'avoir le bouton Terminé en haut à droite de la barre de navigation de navigation de navigation. Soumettre le bouton à la place.

J'ai essayé automatiquement en démissionne du premier répondeur lorsqu'ils deviennent actifs mais cela n'a aucun effet.

Est-ce que quelqu'un sait pourquoi ces clics tandis que désactivés prennent effet lorsqu'ils sont réactivés et comment les arrêter. Gardez à l'esprit que j'ai essayé de démissionner déjà d'interaction de l'utilisateur et de personnes handicapées.

merci Craig

EDIT:

Je viens de remarquer que ce problème n'est pas causé par des clics tandis que Inactive, mais en définissant l'UITEXTVIEW vers Activé, les causes de l'affichage du clavier.

Ceci est un défaut connu depuis iPhone OS 2.1 ... Remarque de version pour 2.2


3 commentaires

0 La partie alarmante est que la TextViewDidBineting n'est pas appelée. Je suppose qu'avant votre traitement de traitement, TextViewDidBeting a été appelé correctement, est-ce correct? Ensuite, lorsque le traitement s'arrête, ils sont uitéxfields se réactivent mais voient quelqu'un d'autre comme des délégués? Est-ce correct?


Oui, la méthode de délégation fonctionne normalement lorsque les champs sont activés. Quand handicapé ils ne répondront à rien. Lorsqu'il est réactivé, le dernier champ à toucher a le clavier actif, mais ses méthodes de délégation n'ont pas été exécutées.


Lorsqu'ils sont réactivés en raison de la touche utilisateur, les méthodes déléguées ne sont pas appelées. S'ils réactivent, car le traitement est complet, les méthodes de déléguement fonctionnent (je suppose). Aucune des méthodes de délégation n'est appelée, vous ne pouvez donc pas ne pas retourner à TextFieldBegineting. Vous avez désactivé les commandes en effectuant ControlVariable.Enabled = NO


3 Réponses :


0
votes

Avez-vous essayé de résigner le premier répondeur lorsque le texte devient inactif au lieu de quand il devient actif?


0 commentaires

2
votes

Ceci est un bug connu depuis iPhone OS 2.1. Lorsque vous appelez uitextview.enabled = YES Le clavier apparaît, reportez-vous à la note de version pour OS 2.2 Note de version

La solution de contournement ne doit pas utiliser uitextview.enabled du tout , utilisez plutôt [uitextView SetunerInterAcédactOf:] Lorsque vous souhaitez activer ou désactiver l'UITEXTVIEW.

craig


1 commentaires

J'ai un problème similaire avec un UITEXTVIEW et le drapeau modifiable. Je soupçonne que c'est un problème connexe. Je soupçonne également que cette question a été effacée en 4.0 ou plus tôt, car je n'ai que ce problème lors de la compilation de l'iPad qui fonctionne toujours sur 3,2



1
votes

uitextview n'a pas de propriété appelée activé . Vous devez utiliser modifitable à la place.


0 commentaires