2009-11-10 6 views
1

J'ajoute dynamiquement un objet UITextField à une cellule de tableau dans mon application. Je voudrais implémenter une méthode "backgroundClick" pour fermer le clavier si l'utilisateur appuie en dehors du champ de texte (et en dehors du clavier) mais je ne sais pas comment obtenir un handle sur le clavier actif dans la méthode backgroundClick comme le UITextField dynamique n'a pas de propriété définie à utiliser. Tout ce que je sais, c'est que c'est un UITextField avec un tag particulier. Y a-t-il un moyen de l'obtenir dans le code?iphone - Créé dynamiquement UITextField par la balise

Cheers.

+0

Pour le bénéfice des futurs lecteurs, j'ai utilisé le lien ci-dessous offert par Benjamin pour résoudre le problème. J'ai mis en place un UITextField factice que j'ai lié à UITextField que j'avais dynamiquement ajouté à ma table groupée. J'ai alors pu appeler le code suivant pour fermer le clavier à tout autre point de mon code: [dummyField becomeFirstResponder]; [dummyField resignFirstResponder]; alan

+0

Merci Benjamin! – alan

Répondre

4
UITextField* field = (UITextField *) [myTableCell viewWithTag: myTag]; 
[field resignFirstResponder]; 

Est-ce ce que vous cherchez?

Modifier pour refléter les commentaires:

Sur la base de votre commentaire, ce n'est pas. Donc, vous voulez probablement lire this other SO question.

+0

c'est proche, le problème est que je n'ai pas de poignée sur la cellule du tableau non plus. Je peuple dynamiquement les cellules en fonction d'un paramètre. à l'une des cellules, j'ai ajouté un champ uitext mais je voulais pouvoir le rejeter avec un clic à l'extérieur de la cellule et à l'extérieur du clavier (essentiellement en utilisant un gros bouton invisible). le problème que j'ai est que l'événement de presse de bouton n'a pas d'information sur la cellule ou le champ de texte. Je commence à penser que ce n'est peut-être pas possible. – alan

+0

Voir mon edit ci-dessus ... –

+0

Merci, exactement ce que je voulais. – alan

1

Si vous avez une référence à UITextField, vous pouvez envoyer resignFirstResponder. Cela va rejeter le clavier.

Questions connexes