键盘的出现和隐藏等常见使用

键盘的使用


1:键盘打开和关闭通知
 //注册键盘关闭打开事件 UIKeyboardWillShowNotification
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(whenKeyboardShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(whenKeyboardHide:) name:UIKeyboardWillHideNotification object:nil];

------------------------------------------------------------------
2:点击键盘reture让键盘消失
//注册键盘按键委托
//<UITextFieldDelegate>
self.textField.delegate = self;
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    [self KeyDismiss];
    return true;
}
//让键盘消失
-(void)KeyDismiss{
    [self.textField resignFirstResponder];
}
--------------------------------------------------------------------------------------------------------------
3:点击view让键盘消失
//注册view点击后隐藏键盘
[self.view addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:(self) action:@selector(KeyDismiss)]];

4:键盘出现和隐藏时文本框的和scroll滚动
-(void)whenKeyboardHide:(NSNotification*) notif{
    //获取当前键盘高度
    NSDictionary* info = notif.userInfo;
    NSValue* value = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardRect = [value CGRectValue];
    //重设scrollview高度
    [UIView animateWithDuration:0.2f animations:^{
        [self.scrollView setContentOffset:CGPointMake(0,self.prevY-keyboardRect.size.height)];
        [self.textField setFrame:CGRectMake(0,538,320,30)];
    }];
    //若没有scrollview可以使用uiview位移
    //CGAffineTransform myTransform = CGAffineTransformMakeTranslation(0.0, -keyboardRect.size.height/2);
    //[_txt_email setTransform:myTransform];
    //[_txt_pwd setTransform:myTransform];
}
-(void)whenKeyboardShow:(NSNotification*) notif{
    //获取当前键盘高度
    NSDictionary* info = notif.userInfo;
    NSValue* value = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardRect = [value CGRectValue];
    
    //重设scrollview高度
   [UIView animateWithDuration:0.1f animations:^{
       [self.scrollView setContentOffset:CGPointMake(0, keyboardRect.size.height)];
       [self.textField setFrame:CGRectMake(0,568-keyboardRect.size.height-30,320,30)];
   }];   
   //若没有scrollview可以使用uiview位移
    //CGAffineTransform myTransform = CGAffineTransformMakeTranslation(0.0, -keyboardRect.size.height/2);
   //[_txt_email setTransform:myTransform];
    //[_txt_pwd setTransform:myTransform];

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这段时间休假,我带着怀孕的爱人回到丈母娘家探亲。按照家乡的习惯,丈母娘准备给未出生的孩子亲手做几套被褥。 买好了布...
    刘大宝_d341阅读 2,732评论 0 0
  • 作为资深抑郁症和拖延症双料患者,我让这个问题困扰了五六年的时间。通过大量阅读书籍,整合知乎的答案,再加上亲自实践,...
    Kukmoon谷月阅读 14,031评论 3 20
  • 二月梅花香扑鼻, 三月海棠斗艳丽。 四月牡丹最为奇, 六月荷花亭亭立。 喜欢隋唐园, 月月有惊喜。 花开不断, 诺...
    简远山人阅读 2,256评论 0 3
  • 136苏良蓉学经汇报: 学经日期:2017年10月26日 星期四 晴 宝贝年龄:女儿六岁七个月,儿子两个半月 学经...
    苏良蓉阅读 1,418评论 0 1

友情链接更多精彩内容