Nit*_*ish 14 iphone ios swift-keyboard
我正在使用UIKeyboardWillShowNotification和UIKeyboardWillHideNotification处理键盘.
这是键盘显示时调用的函数:
-(void) keyboardWillShow:(NSNotification *)note
{
CGRect keyboardBounds;
//[[note.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] getValue: &keyboardBounds];
NSValue* keyboardFrameBegin = [note.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey];
keyboardBounds = [keyboardFrameBegin CGRectValue];
}
Run Code Online (Sandbox Code Playgroud)
我得到keyboardBounds =(0,524,320,44),我使用的是5s.不知道为什么origin.y来了524(应该在300附近)和身高44!我也试过评论说.键盘绑定的两种方式都是44.此问题仅适用于快速键盘.
与此问题相同
问题在于快速键盘,该方法-(void) keyboardWillShow:(NSNotification *)note被调用三次,每次它返回三个不同的origin.y值和高度,第一次给出keyboardBounds = (0, 524, 320, 44),第二次它给出keyboardBounds = (0, 308, 320, 260) 最后第三次调用时返回keyboardBounds = (0, 271, 320, 297)。
由于第三方键盘大小不固定..它们的大小根据视图的布局方式而固定,因此类似于自动布局情况(viewDidLoad,viewWillAppear viewWillLayout,viewDidLayout 然后是 viewDidAppear,因此您可以在 viewDidAppear 或 viewDidLayout 中了解确切的框架,其中视图已经布局。),当视图完全布局时,它会获得精确的帧。
| 归档时间: |
|
| 查看次数: |
2040 次 |
| 最近记录: |