ios keyboardwillshow通知迟到了

时间:2014-10-18 00:01:48

标签: ios notifications keyboard

我在iOS 8上遇到一个奇怪的错误,它在选择文本字段后尝试同步动画与键盘同步。 具体来说,我正在尝试获取键盘的高度,以便在注册keyboardwillshow通知后通过使用以下代码知道移动文本字段的距离:

- (void)keyboardWillShow:(NSNotification *)notification
{
CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
self.keyboardHeight = keyboardSize.height;
[self moveToolbarUp];
}

-(void)moveToolbarUp
{
self.keyboardExpanded = YES;
CGRect frame = self.toolbar.frame;
DLog(@"keyboard height now:%f",self.keyboardHeight);
frame.origin.y = (self.view.frame.size.height-toolbarHeight-self.keyboardHeight);
[UIView animateWithDuration:0.1 animations:^{
    self.toolbar.frame = frame;
}];
}

但是,如果我尝试在keyboardwillshow方法中设置断点,我可以看到键盘在调用方法时已经一直向上,因此动画被延迟(键盘弹出,然后是大约二,左右,文本字段如下)。 还有其他人遇到过这个错误吗?我在iPhone 5s,iOS 8.0.2上运行。

谢谢!

1 个答案:

答案 0 :(得分:0)

这不是错误。事实是您可以删除您的animateWithDuration电话。在iOS 8中,keyboardWillShow:在键盘的动画中称为。你不必同步任何东西;你所做的任何事情都会自动成为动画的一部分。