LHSKeyboardAdjusting

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

Showing:

Popularity

Downloads/wk

0

GitHub Stars

102

Maintenance

Last Commit

5yrs ago

Contributors

5

Package

Dependencies

0

License

Apache 2.0

Categories

Readme

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

LHSKeyboardAdjusting

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+.

NOTE

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


Installation

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.

Usage

  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;
    
    @end
    
  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];
    }
    
    @end
    

    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:^{
            NSLog(@"hi");
        } hide:^{
            NSLog(@"bai");
        }];
    }
    
  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).

License

Apache 2.0, see LICENSE file for details.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100