Scroll up TextField when keyboard shows
Put the UITextField in a UIScrollView
Register keyboard notifications for keyboard show/hide event in viewDidLoad
Adjust scroll view's content inset when keyboard shows
Reset the scroll view's content inset when keyboard hides
1. Put the UITextField in a UIScrollView
2. Register keyboard notifications for keyboard show/hide event in viewDidLoad
- (void)viewDidLoad {
    [super viewDidLoad];
    // Register keyboard notifications for keyboard show/hide event in viewDidLoad
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillChangeFrameNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}3. Adjust scroll view's content inset when keyboard shows
- (void)keyboardWillShow:(NSNotification *)notification
{
    NSDictionary *info = [notification userInfo];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
    UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
    self.scrollView.contentInset = contentInsets;
    self.scrollView.scrollIndicatorInsets = contentInsets;
}4. Reset the scroll view's content inset when keyboard hides
- (void)keyboardWillHide:(NSNotification *)notification
{
    UIEdgeInsets contentInsets = UIEdgeInsetsZero;
    self.scrollView.contentInset = contentInsets;
    self.scrollView.scrollIndicatorInsets = contentInsets;
}Reference
Last updated
Was this helpful?