iOS:键盘框架更改通知错误?

时间:2012-11-26 16:55:36

标签: ios keyboard

在iOS6(iPad 3和Simulator)上取消键盘时,键盘+附件视图会报告UIKeyboardFrameEndUserInfoKey的这些帧(转换为横向视图):

...WillChangeFrameNotification: {{0, 660}, {1024, 396}}
...DidChangeFrameNotification: {{0, 108}, {1024, 396}}

意思是,键盘报告它很快就会有一个Y坐标,它在关闭时通常具有的坐标,即660(这是好的,因为键盘移除也会发送一个WillHide通知);但是,它改变了主意,并报告它已将其框架更改为完全不同的位置(y = 108)而不是?!

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

不,这不是一个错误。只需转换当前视图上的坐标:

CGRect keyboardFrame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect dd  = [self.view convertRect:keyboardFrame fromView:nil];
NSLog(@"keyboard frame %@", NSStringFromCGRect(dd));

我添加了简单的Gist