qianchunqiang 2011-11-23
New一个SingleViewApplication工程
一、配置View与VIewController
从Object栏拖一个TextField、一个Label、一个RoundRectButton、一个Slider出来,并设定title等属性。
注:TextField的Capitalization选择Words,ReturnKeypop-up选择Done,确保输入完毕后可以退出输入界面。
iOS开发使用"目标-行为“模式,行为是指激活的界面元素能够给对象发送的动作消息以执行相应动作方法。具体操作例子如下:
1.给按钮建立动作行为(Action)
切换到storyboard和代码都可见的视图,按住Control然后拖动Button到ViewController的头文件内,如图:
松开Control,弹出窗口中Connection选择Action,Name输入changeGreeting(方法名):(注意冒号),Type选id,Event选TouchUpInside,如图:
点connect生成完毕。实际上以上操作在h文件和m文件分别添加了方法,并关联了Button的SentEvent。
2.给TextField和Label建立出口(Outlet)
按住Control然后拖动TextField到ViewController的头文件内,如图:
松开Control,弹出窗口中Connection选择Outlet(默认),Name输入textField(指针变量名),Type选UITextField,Connect。
viewDidUnload方法实现中最好加上销毁它的代码textField=nil;
3.给Label加Outlet类似以上操作。
4.设置TextField的代理连接(DelegateConnection)
这个步骤是为了指定TextField的代理连接对象,这里我们指定为viewcontroller。
按住Control然后拖动TextField到场景Dock的控制器图标,如图:
松开Control选择delegate。
一、实现VIewController
1.增加保存用户名的属性(Property)
@interface ViewController : UIViewController{ NSString *userName; } //... @property (nonatomic, copy) NSString *userName; //...实现文件
@synthesize userName=_userName;
2.实现changeGreeting方法
- (IBAction)changeGreeting:(id)sender { self.userName = self.textField.text; NSString *nameString = self.userName; if ([nameString length] == 0) { nameString = @"World"; } NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, %@!", nameString]; self.label.text = greeting; }
3.在viewcontroller里配置TextField的代理
实现textFieldShouldReturn以保证输入完毕后切换到FirstResponder(略)
头文件内添加Delegate实现适配UITextFieldDelegate协议。
@interface HelloWorldViewController : UIViewController <UITextFieldDelegate> {...