Keynode
Keynode copied to clipboard
Interactive Keyboard Controller for Swift
Keynode
Why
Using UIScrollViewKeyboardDismissMode added in iOS7, interactive keyboard operation became possible. But, it only works on UIScrollView.
Keynode is able to interactive operate all inputView that appear as FirstResponder.
Appetize's Demo
UITextField |
UITextField |
UIPickerView |
|---|---|---|
![]() |
![]() |
![]() |
Requirements
- Swift 4.2
- iOS 9.0 or later
How to Install
CocoaPods
Add the following to your Podfile:
pod "Keynode"
Carthage
Add the following to your Cartfile:
github "KyoheiG3/Keynode"
Usage
Function
func willAnimate(_ handler: @escaping (Bool, CGRect) -> Swift.Void) -> Keynode.Keynode
- To be called just before the animation.
func animations(_ handler: @escaping (Bool, CGRect) -> Swift.Void) -> Keynode.Keynode
- To be called when the display switching animation.
- It is also called at the time of the keyboard operation of the scroll gesture.
func onCompleted(_ handler: @escaping (Bool, UIResponder?, UIView?) -> Swift.Void) -> Keynode.Keynode
- To be called at the end animation.
func setResponder(responder: UIResponder)
- Can set the responder.
Variable
var isGesturePanningEnabled: Bool
- Set
falseif needn't pan the Keyboard with scrolling gesture. - Default is
true.
var needsToChangeInsetAutomatically: Bool
- Set
falseif needn't change content inset ofUIScrollViewwhen opened the Keyboard. - Default is
true.
var defaultInsetBottom: CGFloat
- Change bottom of
contentInsetif needed. - Default is
0
var gestureOffset: CGFloat
- Such as when there is a
toolbar, you can specify the offset of when closing the keyboard with scroll gesture. - If the value is not set, the value specified in the
defaultInsetBottomwill be used.
Extension
extension NSNotification.Name {
static let UIResponderBecomeFirstResponder: Notification.Name
}
- Notification name for become first responder.
extension UIApplication {
func needsNotificationFromFirstResponder(_ from: Swift.AnyObject?)
}
- Receive the notification from first responder when the function executed.
Caution
- It might not work if the specification has been changed. however it will be solved in the earliest possible stage.
iOS9.0~iOS12.0is confirmed operation.
Acknowledgements
- Inspired by DAKeyboardControl in danielamitay.
Author
Kyohei Ito
Follow me 🎉
LICENSE
Under the MIT license. See LICENSE file for details.


