2010-01-05 3 views

Répondre

1

Vous commencez par placer un gestionnaire sur ce bouton (événement Touch Up Inside). Ensuite, vous avez plusieurs approches.

Vous pouvez avoir une sortie pour chaque zone de texte, dans le gestionnaire, vous définissez la propriété text à zéro pour chacun.

Vous pouvez faire défiler la collection de vues sous-vues de votre vue, et pour chaque zone de texte rencontrée, définissez la propriété text sur nil. Cela ne laisse aucune zone de texte sur la vue intacte. Vous devrez vous recurder si la hiérarchie de vue est imbriquée.

Vous pouvez attribuer des étiquettes numériques dans une certaine plage à chaque zone de texte, puis vous parcourez la plage, récupérez la vue par étiquette et définissez le texte sur zéro. C'est comme cela que l'on fait normalement dans l'API Win32, au cas où cela vous intéresserait.

+0

Les didacticiels de Apple suggéreraient probablement que vous le fassiez en premier. –

+0

donc la propriété dirait juste une fois, et je relie cela à chaque champ de texte? ou est-ce que la propriété dit TextField1, TextField2, TextField3 == nil, etc? – HollerTrain

+0

@HollerTrain: il va: TextField1.text = TextField2.text = TextField3.text = nil; –

2

Si vous avez souvent besoin de champs de texte clairs, il peut être utile de créer une sous-classe de UITextField avec une méthode clearAllText. Ensuite, vous pouvez simplement diffuser le message à toutes les sous-vues dans une vue et ceux avec la méthode effacera leur texte et celui sans l'ignorera. (Plus précisément, vous pouvez vérifier que les sous-vues individuelles répondent au message avant de l'envoyer.) De cette façon, vous n'avez pas besoin de suivre les objets qui sont des champs de texte et ceux qui ne le sont pas. Très utile si vous avez une disposition dynamique dans laquelle le nombre de champs de texte change.

+0

Une propriété est un getter et un setter. Pouvez-vous diffuser un appel de setter avec nil comme argument? –

Questions connexes