TextField防止键盘遮挡

本文介绍了一种在iOS应用中防止TextField被键盘遮挡的方法。通过设置代理,并在键盘显示时调整视图的位置,确保了用户可以始终看到并操作TextField。具体步骤包括设置UITextFieldDelegate、监听键盘显示通知并调整视图大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现TextField防止键盘遮挡  

2013-01-06 11:27:21|  分类: 苹果软件开发|字号 订阅

1、  设置委托

在.h文件的第一行interface中要有设置

@interface MyCard : UIViewController <UITextFieldDelegate>

 

 

2、将定义的TextField委托设置为自己

company_name.delegate=self;

 

 

 

 

3、委托区三个函数

 

//program UITextField delegate

 

- (void)keyboardWillShow:(NSNotification *)noti

{       

         //键盘输入的界面调整       

         //键盘的高度

         float height = 216.0;               

         CGRect frame = self.view.frame;       

         frame.size = CGSizeMake(frame.size.width, frame.size.height - height);       

         [UIView beginAnimations:@"Curl"context:nil];//动画开始         

         [UIView setAnimationDuration:0.30];          

         [UIView setAnimationDelegate:self];         

         [self.view setFrame:frame];        

         [UIView commitAnimations];        

}

 

 

- (BOOL)textFieldShouldReturn:(UITextField *)textField

{       

    // When the user presses return, take focus away from the text field so that the keyboard is dismissed.       

    NSTimeInterval animationDuration = 0.30f;       

    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];       

    [UIView setAnimationDuration:animationDuration];       

    CGRect rect = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height);       

    self.view.frame = rect;       

    [UIView commitAnimations];       

    [textField resignFirstResponder];

    return YES;       

}

 

- (void)textFieldDidBeginEditing:(UITextField *)textField

{       

         CGRect frame = textField.frame;

         int offset = frame.origin.y + 32 - (self.view.frame.size.height - 216.0);//键盘高度216

         NSTimeInterval animationDuration = 0.30f;               

         [UIView beginAnimations:@"ResizeForKeyBoard" context:nil];               

         [UIView setAnimationDuration:animationDuration];

         float width = self.view.frame.size.width;               

         float height = self.view.frame.size.height;       

         if(offset > 0)

         {

                   CGRect rect = CGRectMake(0.0f, -offset,width,height);               

                   self.view.frame = rect;       

         }       

         [UIView commitAnimations];               

        

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值