在没有通知的情况下打开或关闭iOS 8快速键盘的检测

时间:2014-09-17 18:06:00

标签: ios keyboard ios8

我让我们尝试在键盘上方显示,键盘打开后不应移动。

我可以调整它显示的位置,但是使用快速键盘我无法确定键盘的高度,除非我知道快捷键是打开还是关闭。有什么办法可以确定吗?

1 个答案:

答案 0 :(得分:8)

您应该使用keyboardWillShow:通知来调整其​​他视图框架。

通知发布到keyboardWillShow:不仅在becomeFirstResponder上发布了textView / Field,而且当用户显示/隐藏快速键盘时也是如此。

发布keyboardWillShow:通知后,通知对象中的UIKeyboardFrameEndUserInfoKey可以捕获键盘的框架。

基于键盘调整其框架的textView示例:

- (void)keyboardWillShow:(NSNotification *)notification
{
  CGRect keyboardRect = [[[notification userInfo] valueForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
  NSTimeInterval duration = [[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
  UIViewAnimationCurve curve = [[[notification userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue];

  [UIView animateWithDuration:duration animations:^{

    [UIView setAnimationCurve:curve];
    self.textViewVisualEffectView.frame = CGRectMake(self.textViewVisualEffectView.origin.x, self.view.height - keyboardRect.size.height - self.textViewVisualEffectView.height, self.textViewVisualEffectView.width, self.textViewVisualEffectView.height);

  } completion:^(BOOL finished) {

  }];
}