Latest 4.0.0
Homepage https://github.com/KyoheiG3/Keynode
License MIT
Platforms ios 8.0, requires ARC
Frameworks UIKit
Authors

Carthage compatible
Version
License
Platform

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
UIPickerView UITextField UITextField

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 false if needn’t pan the Keyboard with scrolling gesture.
  • Default is true.
var needsToChangeInsetAutomatically: Bool
  • Set false if needn’t change content inset of UIScrollView when opened the Keyboard.
  • Default is true.
var defaultInsetBottom: CGFloat
  • Change bottom of contentInset if 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 defaultInsetBottom will 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.0 is confirmed operation.

Acknowledgements

Author

Kyohei Ito

Follow me 🎉

LICENSE

Under the MIT license. See LICENSE file for details.

Latest podspec

{
    "name": "Keynode",
    "version": "4.0.0",
    "summary": "Interactive Keyboard Controller for Swift",
    "homepage": "https://github.com/KyoheiG3/Keynode",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Kyohei Ito": "[email protected]"
    },
    "swift_version": "4.2",
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/KyoheiG3/Keynode.git",
        "tag": "4.0.0"
    },
    "source_files": "Keynode/**/*.{h,swift}",
    "requires_arc": true,
    "frameworks": "UIKit"
}

Pin It on Pinterest

Share This