Powinieneś używać powiadomienia keyboardWillShow
: do regulacji innych ramek widoków.
Powiadomienie jest wysyłane do keyboardWillShow
: nie tylko na becomeFirstResponder
dla textView/Field, ale także wtedy, gdy użytkownik pokazuje/ukrywa klawiaturę szybkiego pisania.
Po opublikowaniu powiadomienia keyboardWillShow
: ramka klawiatury może zostać przechwycona przez obiekt UIKeyboardFrameEndUserInfoKey
w obiekcie powiadomienia.
Przykładem textView
że dostosowuje swoją ramę opartą na klawiaturze:
- (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) {
}];
}
spojrzeć na mojego roztworu w linku: http://stackoverflow.com/questions/26213681/ios-8- keyboard-hides-my-textview/26226732 # 26226732 –