键盘类型
typedef enum {
UIKeyboardTypeDefault, 默认键盘,支持所有字符
UIKeyboardTypeASCIICapable, 支持ASCII的默认键盘
UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,支持+*#字符
UIKeyboardTypeURL, URL键盘,支持.com按钮 只支持URL字符
UIKeyboardTypeNumberPad, 数字键盘
UIKeyboardTypePhonePad, 电话键盘
UIKeyboardTypeNamePhonePad, 电话键盘,也支持输入人名
UIKeyboardTypeEmailAddress, 用于输入电子 邮件地址的键盘
UIKeyboardTypeDecimalPad, 数字键盘 有数字和小数点
UIKeyboardTypeTwitter, 优化的键盘,方便输入@、#字符
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
} UIKeyboardType;
【监控键盘的出现和隐藏】
//键盘的出现
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil];
//键盘的隐藏
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasDismiss:) name:UIKeyboardDidHideNotification object:nil];
【键盘的高度】
//实现当键盘出现的时候计算键盘的高度大小。用于输入框显示位置
- (void)keyboardWasShown:(NSNotification*)aNotification
{
//获取键盘高度
NSDictionary *info = [aNotification userInfo];
//获取动画时间
float duration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];
//获取动画开始状态的fram
CGRect beginRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
//获取动画结束状态的fram
CGRect endRect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue];
//计算高度差
float offsety = endRect.origin.y - beginRect.origin.y ;
NSLog(@"键盘高度:%f 高度差:%f\n",beginRect.origin.y,offsety);
//下面的动画,你可以让整个View上移动,或者让控件上移
CGRect fileRect = self.toolsView.frame;
fileRect.origin.y += offsety;
[UIView animateWithDuration:duration animations:^{
self.toolsView.frame = fileRect;
}];
}