key

Keynode

Interactive Keyboard Controller for Swift

Showing:

Popularity

Downloads/wk

0

GitHub Stars

76

Maintenance

Last Commit

3yrs ago

Contributors

3

Package

Dependencies

0

License

MIT

Categories

Readme

Keynode

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

UITextFieldUITextFieldUIPickerView
UIPickerViewUITextFieldUITextField

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.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100