我知道如何设置一个NSNotification观察者来检测键盘何时显示/隐藏。从中我可以得到键盘的高度。但是,如果设备在键盘仍在显示的情况下旋转,会发生什么?
在这种新状态下有没有一种方法可以获得键盘的高度?由于键盘仍然显示,新的通知不会被触发。
您仍然需要使用NSNotificationCenter,但是您必须观察不同的键。您要查找的键是UIKeyboardDidChangeFrameNotification,根据文档,该键在键盘框架发生更改后立即发布。
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
// Works in both portrait and landscape mode
CGRect kbRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
kbRect = [self.view convertRect:kbRect toView:nil];
CGSize kbSize = kbRect.size;
UIKeyboardDidShowNotification
。 - memmonsUIKeyboardDidShowNotification
在设备旋转时不会被调用,这就是为什么我不得不发布这个问题的原因。 - Steve Barden