我让我们尝试在键盘上方显示,键盘打开后不应移动。
我可以调整它显示的位置,但是使用快速键盘我无法确定键盘的高度,除非我知道快捷键是打开还是关闭。有什么办法可以确定吗?
答案 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) {
}];
}