上篇博主要记录了基于window-base-application的第一个界面显示,接下去想做的按钮功能实现!!
首先我们要新建一个UIViewController类(.xib资源文件也勾选),开发过程中我们可能对UIView和UIViewController这2个类概念比较模糊,按我现在的肤浅理解为UIView就是类似JAVA里面的jsp界面,而UIViewController则类似JAVA中Servlet或者Struts这个角色,在UIViewController中可以用代码来实现UIView(类似Swing编程),而在Servlet中也是可以用纯代码来写jsp页面同样的道理!
在这个头文件中我们额外增加了一个<UITextFieldDelegate>协议,这个协议的作用就是防止键盘遮挡界面,按下键盘的Return/Done键自动隐藏的功能。
我们在申明的成员变量前面增加了IBOutlet,login方法的返回值设置为IBAction 这2个关键字的作用是告诉Interface Bulider这些成员变量、方法是暴露给Interface Bulider的,在界面设计的时候可以引用
在实现类里面我们实现了头文件中的login方法:
-(IBAction) login{
NSString *nameString=userName.text;
NSString *pdString=passWord.text;
//判断用户输入是否为空值
if (nameString.length==0||pdString.length==0) {
NSLog(@"输入姓名为:%@,密码为:%@",userName.text,passWord.text);
UIAlertView *alertView=[[UIAlertView alloc] initWithTitle:
@"(名字/密码)不能为空" message:@"请输入用户名和密码后点击登入!" delegate:nil
cancelButtonTitle:@"确定" otherButtonTitles:nil];
[alertView show];
[alertView release];
label.text=nil;
return;
}
//判断用户名是否超过10个字符
if (nameString.length>10) {
userName.text=[userName.text substringToIndex:10];
label.textColor=[UIColor redColor];
label.text=@"用户名太长!";
return;
}
}
该方法体主要是对登录界面的参数进行判断
然后我们点开首个界面的xib,右键点开新建的controller如下图所示,刚才在头文件中申明的变量和方法都会显示。点中圆圈后分别和界面上的用户名、密码、登录等进行关联
然后上面提到在输入用户名和密码时会挡住界面,我们需要在界面中需要设置delegate,让<UITextFieldDelegate>监听到键盘输入事件,设置如下
密码输入框也需要设置
并在实现类中增加以下代码,当用户输入结束后点击按钮盘的Done/Return就会自动隐藏键盘
//输入框增加自动隐藏键盘事件
-(BOOL) textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
至此我们的一个基于window-base-application的简单登录以及事件响应功能都已经完成。下篇就将介绍另外一种View-Base-application类型的模版!