(二)UITabBar and UINavigationController基础教程之UITextField键盘隐藏及防止键盘遮挡

之前我们实现了页面切换


这次我们实现UITextField键盘隐藏及防止键盘遮挡

首先我们在.m文件中那个让viewcontroller实现U ITextFieldDelegate

#import <UIKit/UIKit.h>
#import "JBaseViewController.h"

@interface JSecondViewController : JBaseViewController<UITextFieldDelegate>

@end

接下来我们在.h文件中实现
#import "JSecondViewController.h"
#import "StudentDataHelper.h"
#import "Student.h"

@interface JSecondViewController ()

@property UITextField  *name;
@property UITextField  *age;
@property UITextField  *sex;

@end

@implementation JSecondViewController

-(void)buildLayout
{
    //创建出需要的界面元素
    NSArray *text = @[@"姓名",@"年龄",@"性别"];
    for (int i=0; i<3; i++)
    {
        UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(30, 100*i+70, 50, 30)];
        lab.text = [text objectAtIndex:i];
        lab.backgroundColor = [UIColor clearColor];
        [self.view addSubview:lab];
        [lab release];
    }
    
    _name = [[UITextField alloc]initWithFrame:CGRectMake(90, 70, 200, 30)];
    _name.borderStyle = UITextBorderStyleRoundedRect;
    [self.view addSubview:_name];
    [_name release];
    
    _age = [[UITextField alloc]initWithFrame:CGRectMake(90, 170, 200, 30)];
    _age.borderStyle = UITextBorderStyleRoundedRect;
    [self.view addSubview:_age];
    [_age release];
    
    _sex = [[UITextField alloc]initWithFrame:CGRectMake(90, 270, 200, 30)];
    _sex.borderStyle = UITextBorderStyleRoundedRect;
    [self.view addSubview:_sex];
    [_sex release];
    
    UIButton * btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn.frame=CGRectMake(90, 340, 150, 40);
    btn.backgroundColor=[UIColor clearColor];
    [btn setTitle:@"保存" forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(save) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    [btn release];

}

-(void)save
{
    //这里就先不介绍怎么具体存入数据库了
    //NSLog(@"==1==");
    Student * student=[[Student alloc]init];
    student.name=_name.text;
    student.sex=_sex.text;
    student.age=_age.text;
    StudentDataHelper * stu=[StudentDataHelper sharedHelper];
    //NSLog(@"%@",student.name);
    [stu addStudent:student];
    [student release];
}

//隐藏输入键盘 (点击return)
-  (BOOL)textFieldShouldReturn:(id)sender
{
	[sender  resignFirstResponder];
    
	return  YES;
}
//隐藏输入键盘(文本框 失去焦点键盘隐藏)
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    [_name resignFirstResponder];
    [_age resignFirstResponder];
    [_sex resignFirstResponder];
}
-(void)textFieldDidBeginEditing:(id)sender
{
    if (sender==_sex) {
        //CGRectOffset,让一个矩阵偏移一定的量
        CGRect target = CGRectOffset(self.view.frame, 0, -80);
        
        [UIView animateWithDuration:0.25 animations:^{
            self.view.frame = target;}];
    }
}
- (void)textFieldDidEndEditing:(id)sender
{
    if (sender==_sex) {
        CGRect target = CGRectOffset(self.view.frame, 0, 80);
        
        [UIView animateWithDuration:0.25 animations:^{
            self.view.frame = target;}];
    }
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.view.backgroundColor=[UIColor grayColor];
    [self buildLayout];
    //隐藏navigationController
    [self.navigationController setNavigationBarHidden:YES animated:YES];
    
	//把它们3个属性的代理设成自身
    _name.delegate=self;
    _age.delegate=self;
    _sex.delegate=self;
}

@end

这样就可以基本实现了

     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值