Skip to content

UIViewController extension for convenient keyboard management.

License

Notifications You must be signed in to change notification settings

evilutioner/Keyboardy

 
 

Repository files navigation

Keyboardy

Version Carthage Compatible License Platform

Description

Keyboardy extends UIViewController with few simple methods and provides delegate for handling keyboard appearance notifications.

  • Keyboardy is just wrapper on UIKeyboardWillShowNotification and UIKeyboardWillHideNotification notifications.
  • Supports both AutoLayout and frame-based animations.
  • Swift implementation.
  • Without any hacks like method swizzling and magic numbers (ex., curve << 16).

Keyboardy Demo GIF

Usage

  • Import Keyboardy module
import Keyboardy
  • Register for keyboard notifications
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    registerForKeyboardNotifications(self)
}
  • Unregister from keyboard notifications
override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    unregisterFromKeyboardNotifications()
}
  • Implement KeyboardStateDelegate
extension ViewController: KeyboardStateDelegate {

    func keyboardWillTransition(_ state: KeyboardState) {
        // keyboard will show or hide
    }

    func keyboardTransitionAnimation(_ state: KeyboardState) {
        switch state {
        case .activeWithHeight(let height):
            textFieldContainerBottomConstraint.constant = height
        case .hidden:
            textFieldContainerBottomConstraint.constant = 0.0
        }

        view.layoutIfNeeded()
    }

    func keyboardDidTransition(_ state: KeyboardState) {
        // keyboard animation finished
    }
}

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

Swift 3, iOS 8

Installation via CocoaPods

Keyboardy is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "Keyboardy"

Installation via Carthage

Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate Keyboardy into your Xcode project using Carthage, specify it in your Cartfile:

github "podkovyrin/Keyboardy"

Author

Andrew Podkovyrin, podkovyrin@gmail.com

License

Keyboardy is available under the MIT license. See the LICENSE file for more info.

About

UIViewController extension for convenient keyboard management.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 92.4%
  • Ruby 7.6%