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坐标显示键盘的开始和结束位置.