2009-05-16 5 views
2

Je voudrais qu'un UITextField apparaisse lorsqu'un bouton est enfoncé. Malheureusement, je ne peux pas le masquer dans Interface Builder, puis définir la propriété masquée sur NO ultérieurement car "ibtool échoue avec le code de sortie 5" si vous tentez de masquer un UITextField.Meilleure façon de faire apparaître un champ UITextField

Je vais essayer de le faire dans le code, mais je me demande si je peux manquer quelque chose ou faire une grave erreur d'interface utilisateur en essayant de faire quelque chose comme ça? Ou peut-être que c'est juste un bug?!?

Répondre

4

Si vous ne pouvez pas le définir sur caché dans IB, vous pouvez le faire par programmation, avec field.hidden = YES; dans la méthode viewDidLoad de votre contrôleur de vue. Puis réglez-le à NO dans l'action cible du bouton.

1

bizarre, mais vous pourriez simplement l'ajouter par programmation, et le montrer avec une certaine animation d'opacité.

0

Je viens d'essayer d'ajouter un UITextField dans IB et de vérifier la boîte hidden, et n'a pas eu de crash. Bien sûr, j'utilise le SDK 3.0 bêta, donc ce peut être un bug qui a été corrigé. De toute façon, cependant, vous devriez être en mesure de simplement marquer comme caché, puis dans le jeu de code hidden = NO. Je ne sais pas pourquoi cela ne fonctionne pas pour vous sans plus d'informations.

+0

Je l'ai essayé avec le 2.2 SDK et j'ai obtenu le même résultat, donc oui, c'est peut-être un bug. –

1

Ou simplement, définissez alpha sur 0.0. Vous pouvez même très facilement animer le changement et ça aura l'air vraiment bien.

+0

Cela semble être plus élégant. L'animation de la propriété HIDDEN ne semble pas fonctionner. C'est tout ou rien. Donc, en utilisant un combo de HIDDEN et Alpha garde le garder caché et l'empêche de répondre aux touches jusqu'à ce qu'il soit activé. THX. – Meltemi

0

Ouais, ressemble à un bug, mais une solution simple possible est de faire simplement vide, à savoir donner aucune valeur de chaîne dans IB et définissez la valeur de chaîne (via NSLocalizedString() bien sûr) quand vous voulez qu'il « semble '.

Questions connexes