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.
UITextField |
UITextField |
UIPickerView |
|---|---|---|
![]() |
![]() |
![]() |
- Swift 4.2
- iOS 9.0 or later
Add the following to your Podfile:
pod "Keynode"Add the following to your Cartfile:
github "KyoheiG3/Keynode"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.
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 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.
- 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.
- Inspired by DAKeyboardControl in danielamitay.
Follow me 🎉
Under the MIT license. See LICENSE file for details.


