LHSKeyboardAdjusting Save

An easy-to-use Objective-C protocol that automatically resizes / adjusts views when a keyboard appears on iOS.

Project README

For the Swift port of this project, please see KeyboardAdjuster.


CI Status Version License Platform

LHSKeyboardAdjusting will adjust the bottom position of your UIScrollView or UITableView when a keyboard appears on screen using Auto Layout. All you have to do is provide LHSKeyboardAdjusting with an NSLayoutConstraint that pins the bottom of your view to the bottom of the screen. LHSKeyboardAdjusting will automatically adjust that constraint and pin it to the top of the keyboard when it appears.

LHSKeyboardAdjusting requires Auto Layout in your build target, so it will only work with iOS 6+.


If you're currently using LHSKeyboardAdjusting 1.0+ in your project, note that some things have changed.


LHSKeyboardAdjusting uses CocoaPods, so in your Podfile, just add something like this:

pod 'LHSKeyboardAdjusting', '~> 2.0'

Then run pod install and you'll be ready to go.

If you don't use CocoaPods, dragging and dropping the LHSKeyboardAdjusting folder into your Xcode project will do the trick as well.


  1. In your view controller's header file, assign the LHSKeyboardAdjusting protocol to your class and define an NSLayoutConstraint property called keyboardAdjustingBottomConstraint.

    #import <LHSKeyboardAdjusting/LHSKeyboardAdjusting.h>
    @interface ViewController : UIViewController <LHSKeyboardAdjusting>
    @property (nonatomic, strong) NSLayoutConstraint *keyboardAdjustingBottomConstraint;
  2. In your view controller, implement keyboardAdjustingView to return the view you'd like to pin to the top of the keyboard. It could be anything, but a UIScrollView, UITableView, or a UITextView are the most likely candidates.

    #pragma mark - LHSKeyboardAdjusting
    - (UIView *)keyboardAdjustingView {
        return self.tableView;
  3. Activate and deactivate the automatic adjustments in viewWillAppear and viewWillDisappear.

    #import <LHSKeyboardAdjusting/UIViewController+LHSKeyboardAdjustment.h>
    @implementation ViewController
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [self lhs_activateKeyboardAdjustment];
    - (void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        [self lhs_deactivateKeyboardAdjustment];

    Note: you can also define callbacks on keyboard appearance or disappearance using lhs_activateKeyboardAdjustmentWithShow:hide::

    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [self lhs_activateKeyboardAdjustmentWithShow:^{
        } hide:^{
  4. And you're done! Whenever a keyboard appears, this view will be automatically resized.

If you need more pointers on how to set everything up, clone this repo and check out the included example project (LHSKeyboardAdjustingExample).


Apache 2.0, see LICENSE file for details.

Open Source Agenda is not affiliated with "LHSKeyboardAdjusting" Project. README Source: lionheart/LHSKeyboardAdjusting
Open Issues
Last Commit
6 years ago

Open Source Agenda Badge

Open Source Agenda Rating