user149533
user149533

Reputation:

iPhone API: newbie questions on the HelloWorld sample

Just getting started on iPhone dev today and have run through Apple's HelloWorld tutorial:

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

Couple of easy questions for you folks (sorry so long-winded but I'm hunting around in the dark here):

1) So I made MyViewController the delegate for the text field, in order to receive a message when the return key is pressed (textFieldShouldReturn). This seems inelegant because the method has to check which control sent the message. But to handle the touch event on the button the technique is different -- a custom message (changeGreeting) gets sent which could be associated with one or several buttons in Interface Builder, and I could create different messages for different buttons.

That seems much better and avoids the need to test in code which control sent the event. Why these two different approaches in the sample, is it just to demonstrate the two? Would it be possible to rewrite the sample only using the latter approach, or is there something fundamentally different between the text field's textFieldShouldReturn and the button's 'Touch Up' that mandates making the view controller a delegate for the text field?

2) When I position the text field near the top of the view, if it's a certain vertical displacement away from the grey status bar with the battery status symbol then it locks into place and you can see the vertical blue dashed line indicating the lock. In this mode, when I run the app the text field is too high, hard up against the status bar. I can resolve this by moving the text field very slightly so that the vertical dashed blue line no longer appears. Then the positioning seems relative to whatever's above the text field, as I can select a larger Top Bar in the Simulated UI Elements and it moves down nicely.

I'd expect to see some explicit property in the Attributes Inspector that says whether the layout is relative or absolute, but I can't find anything that changes between the two scenarios. Surely this is made more explicit somewhere in the Interface Builder UI?

Hope these Q's represent some easy points for someone...

Upvotes: 1

Views: 156

Answers (1)

user349819
user349819

Reputation:

1) You can connect the UITextField "Did End On Exit" event to an IBAction, similar to the Buttons "Touch Up". The benefit of using the delegate is that you get a higher level of interaction for free with the UITextfield, without having to assign every event to an IBAction in interface builder.

2) In the Interface Builder Inspector, on the size tab (the little ruler icon) there are a set of controls which allow you to set the automatic positioning of a subview. I believe you are interested in the "Autosizing" section.

Upvotes: 0

Related Questions