Trouver la Vue est la firstresponder
J'aimerais avoir le point de vue qui est le premier intervenant, actuellement, j'ai un UITableView qui contient UITextFields, à l'aide d'une méthode:
-(UIView*) findFirstResponder
{
}
Je voudrais être en mesure d'obtenir le point de vue qui est le firstResponder et puis faire quelque chose avec ce point de vue.
Des idées?
Combien d'objets textfield vous avez dans tableView?
Ils sont créés de manière dynamique, mais j'ai trouvé une façon juste maintenant
Heureux de savoir que, juste après, il en guise de réponse. 🙂
Je recommande à diverger de la boucle de l'approche, si possible, ce qui pourrait ajouter inutiles de traitement. Un nettoyant approche de nous pour créer une variable locale ou de l'instance, pour maintenir une référence à l'objet actif, généralement situé dans un délégué de la méthode, comme le
Ce n'est pas vraiment une mauvaise manière, je souhaite que j'ai pensé à cela plus tôt, eh bien pour l'instant j'ai un exemple de travail à la démo, je peux optimiser un peu plus tard.
Ils sont créés de manière dynamique, mais j'ai trouvé une façon juste maintenant
Heureux de savoir que, juste après, il en guise de réponse. 🙂
Je recommande à diverger de la boucle de l'approche, si possible, ce qui pourrait ajouter inutiles de traitement. Un nettoyant approche de nous pour créer une variable locale ou de l'instance, pour maintenir une référence à l'objet actif, généralement situé dans un délégué de la méthode, comme le
UITextFieldDelegate
méthode - (void)textFieldDidBeginEditing:(UITextField *)textField.Ce n'est pas vraiment une mauvaise manière, je souhaite que j'ai pensé à cela plus tôt, eh bien pour l'instant j'ai un exemple de travail à la démo, je peux optimiser un peu plus tard.
OriginalL'auteur Armand | 2012-03-26
Vous devez vous connecter pour publier un commentaire.
Tout ce que j'avais à faire était de
Pour aller plus dans les détails du pourquoi cela fonctionne pour moi: j'ai un UITextField qui a un UIPickerView comme un inputView, maintenant ils sont tous créés dynamiquement, donc je ne tiens pas toute référence à des champs à l'exception de ma table de la vue, de sorte que lorsque je sélectionne un objet textfield la UIPickerView va se montrer et je puis sélectionnez une valeur dans le sélecteur pour définir le texte de l'objet UITextField, j'ai ensuite dû faire appel à un délégué méthode pour passer de la valeur sélectionnée avec l'actuelle firstresponder. voir cette question stackoverflow.com/questions/9874037/...
Solution sympa 😉
OriginalL'auteur Armand
Utilisation UIControl que de la racine de la référence à différents types de contrôle qui peut devenir secouriste.
Comme Gobot dit - chaque fois qu'un textfield devient le premier intervenant, de garder une note de laquelle il s'agit...
Si le premier répondeur n'est pas un
UITextField
? Il y aUITextView
s aussi, et peut-être d'autres...? Ne vous méprenez pas, c'est une bonne solution pour la question posée, mais je suis à la recherche de quelque chose d'un peu plus universel.Vous pouvez utiliser une référence à UIControl. Voir ci-dessus
C'est la meilleure réponse à toutes les questions similaires.
OriginalL'auteur Damo
Il n'y a pas de moyen simple de trouver
firstResponder
dans iOS. Les réponses ci-dessus sont uniquement le suivi desUIView
s, mais toutes les classes deUIResponder
commeUIViewController
peut être un premier intervenant.Selon la
Quick Help
deUIResponder
:Et la seule façon de suivre
UIResponder
chaîne à l'aide deUIResponder
'snext: UIResponder
propriété.Dans la plupart des
UIKit
objetsuperview
,UIViewController
,UIWindow
,UIApplication
ouAppdelegate
sera lenext
UIResponder
.Cependant, le ci-dessus ne suit pas
responder
's frères et sœurs. Je suppose que si vous voulez vraiment les suivre tous, vous avez besoin de vérifier le type de répondeur et de suivre son enfant(sous-vue, enfant-vue-contrôleur).OriginalL'auteur Ryan
Je voudrais partagé avec vous mon de mise en œuvre pour trouver des premiers intervenants dans n'importe quel endroit de UIView. J'espère que cela aide, et désolé pour mon anglais. Grâce
OriginalL'auteur Rubens Iotti