UIKeyboardFrameBeginUserInfoKey和UIKeyboardFrameEndUserInfoKey之间的区别是什么?
这是否意味着“开始”会返回一个与“结束”返回的值不同的值?
谢谢 !
解决方法
UIKeyboardFrameBeginUserInfoKey将在动画开始之前返回键盘的框架.动画完成后,UIKeyboardFrameEndUserInfoKey将返回键盘的框架.例如,请使用以下代码段:
NSDictionary* info = [notification userInfo]; CGRect beginFrame = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]; CGRect endFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
如果要在调试窗口中打印beginFrame和endFrame的值,可能会发现如下所示:
(gdb) print beginFrame
$1 = {
origin = {
x = 0,y = 480
},size = {
width = 320,height = 216
}
}
(gdb) print endFrame
$2 = {
origin = {
x = 0,y = 264
},height = 216
}
}
所以在iPhone上,这表明键盘将从屏幕底部动画显示.键盘的大小不会改变(如预期的那样),但是y坐标显示键盘的开始和结束位置.