2010-09-03 4 views
1

Il suffit de vous lancer sur iPhone dev aujourd'hui et ont couru à travers le tutoriel d'Apple HelloWorld:iPhone API: les questions newbie sur l'échantillon HelloWorld

http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhone101/Articles/02_CreatingProject.html#//apple_ref/doc/uid/TP40007514-CH3-SW3

quelques questions faciles pour les gens vous (désolé si longue haleine, mais Je chasse dans le noir ici):

1) Je fait MyViewController le délégué pour le champ de texte, afin de recevoir un message lorsque la touche de retour est pressé (textFieldShouldReturn). Cela semble inélégant car la méthode doit vérifier quel contrôle a envoyé le message. Mais pour gérer l'événement tactile sur le bouton, la technique est différente - un message personnalisé (changeGreeting) est envoyé qui pourrait être associé à un ou plusieurs boutons dans Interface Builder, et je pourrais créer différents messages pour différents boutons.

Cela semble beaucoup mieux et évite le besoin de tester dans le code quel contrôle a envoyé l'événement. Pourquoi ces deux approches différentes dans l'échantillon, est-ce juste pour démontrer les deux? Serait-il possible de réécrire l'échantillon uniquement en utilisant cette dernière approche, ou y a-t-il quelque chose de fondamentalement différent entre textFieldShouldReturn du champ de texte et Touch Up du bouton qui oblige le contrôleur de vue à être un délégué pour le champ de texte? Lorsque je place le champ de texte en haut de la vue, s'il y a un certain décalage vertical par rapport à la barre d'état grise avec le symbole d'état de la batterie, il se verrouille et vous pouvez voir le bleu vertical ligne pointillée indiquant le verrou. Dans ce mode, lorsque j'exécute l'application, le champ de texte est trop élevé, trop fort par rapport à la barre d'état. Je peux résoudre ceci en déplaçant le champ de texte très légèrement de sorte que la ligne bleue pointillée verticale n'apparaisse plus. Ensuite, le positionnement semble relatif à tout ce qui se trouve au-dessus du champ de texte, car je peux sélectionner une plus grande barre supérieure dans les éléments de l'interface utilisateur simulée et il se déplace bien.

J'espère voir une propriété explicite dans les attributs de l'inspecteur qui dit que la mise en page est relative ou absolue, mais je ne trouve rien qui change entre les deux scénarios. Sûrement ceci est rendu plus explicite quelque part dans l'interface utilisateur d'Interface Builder?

espère que ces Q représentent de quelques points faciles pour quelqu'un ...

+0

J'ai essayé de faire en sorte qu'il soit meilleur mais ne pouvez pas, s'il vous plaît, séparer un paragraphe pour une meilleure lisibilité? – vodkhang

+0

Fait! Je suppose que vous n'aimez pas les romans de James Joyce. – Nestor

+0

+1 et étoilé, j'ai eu le deuxième problème, même avec SDK 3.1.3 * et * SDK 4 et pour la vie de moi, je ne peux pas comprendre pourquoi non plus. (Je n'ai pas non plus pu le savoir car je commence toujours.) – BoltClock

Répondre

1

1) Vous pouvez connecter le UITextField « Did fin à la sortie » à un événement IBAction, similaire aux boutons « Touch Up ». L'avantage d'utiliser le délégué est que vous obtenez un niveau d'interaction plus élevé gratuitement avec le champ UIText, sans avoir à affecter chaque événement à un IBAction dans le constructeur d'interface.

2) Dans l'Interface Builder Inspecteur, sous l'onglet taille (la petite icône de la règle) il y a un ensemble de contrôles qui vous permettent de définir le positionnement automatique d'un sous-vue. Je crois que vous êtes intéressé par la section "Autosizing".

+0

1) Cela semble prometteur, merci. 2) J'ai essayé d'allumer et d'éteindre le haut "I" dans la section Autosizing, à la fois pour le champ de texte et la vue elle-même, et pour moi, cela n'a pas changé la position verticale du contrôle. – Nestor

+0

1) Travaux, merci! 2) La réponse de Sayid Cohen sur la page suivante a fonctionné pour moi, bien que j'aie souhaité avoir plus de fond: http: //www.iphonedevsdk.com/forum/iphone-sdk-développement/3953-titre-bar-top-view.html # post165423 – Nestor