Skip to content

abekert/KeyboardLayoutGuide

 
 

Repository files navigation

⌨️ KeyboardLayoutGuide

Apple's missing KeyboardLayoutGuide

Language: Swift 5 Platform: iOS 9+ SPM compatible Carthage compatible CocoaPods compatible Build Status codebeat badge License: MIT GitHub tag

  • No Subclassing / Protocol inheritance / obscure overrides
  • No more keyboard notification handling
  • UIKit Friendly
  • Takes safeArea into account
  • Only animates if view is fully on screen

How to use it

Simply constrain your views to the KeyboardLayoutGuide's top anchor the way you would do natively:

override func viewDidLoad() {
    super.viewDidLoad()

    // Pin your button to the keyboard
    button.bottomAnchor.constraint(equalTo: view.keyboardLayoutGuide.topAnchor).isActive = true
}

Bonus: if you're using Stevia, this gets even more concise \o/

button.Bottom == view.keyboardLayoutGuide.Top

If you add your view in Interface Builder, don't forget to enable the "Remove at build time" checkbox for the bottom constraint:

Safe Area

By default, KeyboardLayoutGuide will align your item with the bottom safe area. This is a behaviour that can be opt out with the usesSafeArea property.

// Opt out of safe area if needed.
view.keyboardLayoutGuide.usesSafeArea = false

Installation

CocoaPods

To install KeyboardLayoutGuide via CocoaPods, add the following line to your Podfile:

target 'MyAppName' do
  pod 'Keyboard+LayoutGuide'
  use_frameworks!
end

Carthage

To install KeyboardLayoutGuide via Carthage, add the following line to your Cartfile:

github "freshos/KeyboardLayoutGuide"

Swift Package Manager

To integrate KeyboardLayoutGuide via SPM into your Xcode 11 project specify it in Project > Swift Packages:

https://github.com/freshOS/KeyboardLayoutGuide

Manually

Just add Keyboard+LayoutGuide.swift to your Xcode project.

License

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

About

⌨️ Apple's missing KeyboardLayoutGuide

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 85.5%
  • Ruby 8.7%
  • Objective-C 5.8%