KeyboardLayoutGuide
KeyboardLayoutGuide copied to clipboard
⌨️ KeyboardLayoutGuide, back from when it didn't exist.
⌨️ KeyboardLayoutGuide
Apple's missing KeyboardLayoutGuide
- [x] No Subclassing / Protocol inheritance / obscure overrides
- [x] No more keyboard notification handling
- [x]
UIKitFriendly - [x] Takes
safeAreainto account - [x] 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 by using keyboardLayoutGuideNoSafeArea instead of keyboardLayoutGuide.
Installation
The Swift Package Manager (SPM) is now the official way to install KeyboardLayoutGuide. The other package managers are now deprecated as of 1.7.0 and won't be supported in future versions.
Swift Package Manager
Xcode > File > Swift Packages > Add Package Dependency... > Paste https://github.com/freshOS/KeyboardLayoutGuide
CocoaPods - Deprecated
To install KeyboardLayoutGuide via CocoaPods, add the following line to your Podfile:
target 'MyAppName' do
pod 'Keyboard+LayoutGuide'
use_frameworks!
end
Carthage - Deprecated
To install KeyboardLayoutGuide via Carthage, add the following line to your Cartfile:
github "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.