不让键盘挡住UITextField

来源:互联网 发布:php命令行执行 编辑:程序博客网 时间:2024/04/28 12:08

第一个问题:当光标定位到UITextField进行输入时,键盘会盖住UITextField,无法看到输入的内容, 如何当UITextField得到焦点时,动态移动UITextField控件,而不让键盘挡住UITextField控件,就象iphone版本的QQ 登录界面一样,当输入用户名或密码时,整个View都会动态移动到合适位置,以免被键盘挡住,如图二示。

-(UITextView *)textView

{
    NSLog(@"   begin editing ");
    [postScrollView setContentOffset:CGPointMake(0, 150) animated:YES];
    return YES;
}

//写完之后  在某一个事件方法中(如:发送的方法)取消焦点:[postTextView resignFirstResponder];  接下来会自动运行一下委托:

- (void)textViewDidEndEditing:(UITextView *)textView
{
    NSLog(@"   did end editing ");
    [postScrollView setContentOffset:CGPointMake(0.0, 0.0) animated:YES];

}

 

第二个问题:如何在空白处点击自动隐藏键盘(在UITextField控件之外点击),如图二示。

- (BOOL)textViewShouldBeginEditing:

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyBoard:)];
    tapGestureRecognizer.numberOfTapsRequired = 1;
    [myScrollView addGestureRecognizer: tapGestureRecognizer];   //只需要点击非文字输入区域就会响应hideKeyBoard

- (void)hideKeyBoard:(id)sender
{
  [myTextView  resignFirstResponder];
//or [myTextField resignFirstResponder];
}

 

 

用self.view.center = CGPointMake(x,y)来移动view就可以解决键盘档住的问题, 其中x代表x轴的坐标,y代表y轴的坐标
整个画面往上移

0 0