iOS笔记监听键盘状态 获取键盘高度

来源:互联网 发布:怎样改淘宝用户名 编辑:程序博客网 时间:2024/06/01 09:31

在viewdidload注册消息, 调用  registerForKeyboardNotifications 方法


- (void) registerForKeyboardNotifications

{

    [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWasShown:)name:UIKeyboardDidShowNotificationobject:nil];

    

    [[NSNotificationCenterdefaultCenteraddObserver:selfselector:@selector(keyboardWasHidden:)name:UIKeyboardDidHideNotificationobject:nil];

}


在键盘弹出时获取键盘高度 加个动画改变视图位置


- (void) keyboardWasShown:(NSNotification *) notif

{

    NSDictionary *info = [notifuserInfo];

    NSValue *value = [infoobjectForKey:UIKeyboardFrameEndUserInfoKey];

    CGSize keyboardSize = [valueCGRectValue].size;

    [UIViewbeginAnimations:@"xxx"context:nil];

    [UIViewsetAnimationDuration:0.5];

    self.tableView.frame =CGRectMake(0,0,W(self.view),H(self.view) - keyboardSize.height);

    [UIViewcommitAnimations];

    NSLog(@"keyBoard:%f", keyboardSize.height); //216

    ///keyboardWasShown = YES;

}

在键隐藏时时获取键盘高度



- (void) keyboardWasHidden:(NSNotification *) notif

{

    NSDictionary *info = [notifuserInfo];

    

    NSValue *value = [infoobjectForKey:UIKeyboardFrameEndUserInfoKey];

    CGSize keyboardSize = [valueCGRectValue].size;

    NSLog(@"keyboardWasHidden keyBoard:%f", keyboardSize.height);

    // keyboardWasShown = NO;

    

}

多用于在键盘弹出式改变视图的位置以免被键盘挡住影响用户体验

1 0
原创粉丝点击