第一个UI界面

IOS提供的UI组件很像C#,很多控件都拖动再绑定事件就可以了,但是毕竟系统很死,生成的东西比较死板,所以我们也要经常自己手动写。在我们创建一个项目后,系统会自动生成一个视图控制器(ViewController),如果你想操作视图控制器上的组件,比如添加事件,那么就应该让视图控制器持有界面上的组件,而主面板(Main.storyboard),Main.storyboard也就是我们程序进入后的第一屏。

让控制器持有我们界面上的组件有很多种方法:

一、直接拖向控制器的头文件

选中控件,按住command,然后拖向控制器的头文件,这个时候弹出的对话框,根据自己需要如果是让控制器持有当前组件,那么就选择outlet,如果绑定事件就选择Action,然后再name中输入自己属性的名称或者方法的名称。

第一个UI界面

二、在头文件中自己编写属性再绑定

如上图所示自己也可以编写属性或者方法,但是注意有些属性名可能和系统的冲突,刚开始我直接写的是no,一直取不到值

@property (weak,nonatomic)IBOutlet UITextField *qqNo;

@property (weak, nonatomic) IBOutletUITextField *pwd;

-(IBAction)login;

 

如果是自己写的属性或者方法也可以在界面上通过选中控件,按住command链接你要指向的属性或者方法

第一个UI界面


输入完成退出键盘绑定的两种方式:

一、由键盘唤起者也就是第一响应者分发第一响应者

我们在登录的时候添加一个事件

-(void)login{

   NSLog(@"qq号码是%@QQ密码是:%@",self.qqNo.text,self.pwd.text);   

    //第一响应者:把键盘换出来的控件   

    //分发第一响应者

   // [self.qqNo resignFirstResponder];   

    //直接退出键盘(叫出键盘的控件必须是它的子控件或者是它本身)

    [self.viewendEditing:YES];    

}

二、通过UITextField的代理,让ViewController实现UITextField的协议UITextFieldDelegate,监听界面上的return key,还是通过选中控件,按住command把文本框的代理链接到ViewController控制器,也就是控制器充当了代理对象。

第一个UI界面

@protocol UITextFieldDelegate <NSObject>


@optional //非必须实现

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;  //在开始编辑文本框的时候调用     // return NO to disallow editing.

- (void)textFieldDidBeginEditing:(UITextField *)textField;      //在开始编辑文本框的时候调用     // became first responder

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;    //失焦的时候调用     // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end

- (void)textFieldDidEndEditing:(UITextField *)textField;      //失焦的时候调用        // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called


- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text


- (BOOL)textFieldShouldClear:(UITextField *)textField;    //点清除的时候调用           // called when clear button pressed. return NO to ignore (no notifications)

- (BOOL)textFieldShouldReturn:(UITextField *)textField;        //监听return key      // called when ‘return‘ key pressed. return NO to ignore.


@end

在.m文件中实现该方法 当文本输入框的return key被点击的时候被调用

//把当前文本输入框当做参数传入

-(BOOL)textFieldShouldReturn:(UITextField *)textField{

    NSLog(@"调用...");

    //[self.view endEditing:YES];

    [textField resignFirstResponder];

    return YES;

}


模拟器home键快捷键:command+shift+h


第一个UI界面

上一篇:【学习笔记】 支配集、覆盖集、独立集与匹配


下一篇:单例模式