我正在使用UIKeyboardWillShowNotification
和UIKeyboardWillHideNotification
来处理键盘。
这是当键盘显示时调用的函数:
-(void) keyboardWillShow:(NSNotification *)note
{
CGRect keyboardBounds;
//[[note.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] getValue: &keyboardBounds];
NSValue* keyboardFrameBegin = [note.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey];
keyboardBounds = [keyboardFrameBegin CGRectValue];
}
我得到了keyboardBounds = (0, 524, 320, 44) 的值,我使用的是5s。不知道为什么origin.y会是524(应该在300左右),高度为44!
我也尝试过注释掉的那行代码。以这两种方式获取键盘边框,结果都是44。这个问题只出现在 swift键盘中。
与此问题相同。
UIKeyboardDidShowNotification
时是否出现了相同的问题? - Fabio PoloniUIKeyboardDidChangeFrameNotification
并持续保存框架? - Fabio PoloniUIKeyboardDidChangeFrameNotification
可能会给您更多的通知,但可能比其他通知更精确。 - Fabio Poloni