Latest 1.1
Homepage https://github.com/Daltron/KeyboardSpy
License MIT
Platforms ios 8.0
Authors

KeyboardSpy

Version
Language: Swift
Platform
License

Written in Swift 4

KeyboardSpy is a super lightweight and easy to use wrapper that makes observing keyboard notifications in iOS a breeze.

Requirements

  • iOS 8.0+
  • xCode 9.0+

Installation

CocoaPods

To integrate KeyboardSpy into your xCode project using CocoaPods, specify it in your Podfile:

pod 'KeyboardSpy'

Then, run the following command:

$ pod install

Usage

KeyboardSpy uses a protocol based approach to observe keyboard notifications:

public protocol KeyboardSpyAgent {
    var keyboardEventsToSpyOn: [KeyboardSpyEvent] { get }
    func keyboardSpyEventProcessed(event:KeyboardSpyEvent, keyboardInfo: KeyboardSpyInfo)
}

To add a spy, simply:

KeyboardSpy.spy(on: self)

To remove a spy, simply:

KeyboardSpy.unspy(on: self)

There are six different events you can spy on:

public enum KeyboardSpyEvent {
    case willShow
    case didShow
    case willHide
    case didHide
    case willChangeFrame
    case didChangeFrame
}

You will get the following object for each event you spy on:

public class KeyboardSpyInfo: NSObject {
    public private(set) var beginFrame: CGRect!
    public private(set) var endFrame: CGRect!
    public private(set) var animationCurve: UIViewAnimationCurve!
    public private(set) var animationDuration: Double!
    public private(set) var isLocal: Bool!
    public var keyboardHeight: CGFloat
}

Example:

import KeyboardSpy

class KeyboardSpyViewController: UIViewController {

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        KeyboardSpy.spy(on: keyboardSpyView) // This can be placed anywhere
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        KeyboardSpy.unspy(on: keyboardSpyView) // This can be placed anywhere
    }

}

extension KeyboardSpyViewController: KeyboardSpyAgent {

    internal var keyboardEventsToSpyOn: [KeyboardSpyEvent] {
        return [.willShow, .willHide]
    }

    internal func keyboardSpyEventProcessed(event: KeyboardSpyEvent, keyboardInfo: KeyboardSpyInfo) {
        if event == .willShow {
            // Do something like moving a view above the keyboard
        } else if event == .willHide {
            // Do something like moving a view back to its original position
        }   
    }

}

Author

Dalton Hinterscher, [email protected]

License

KeyboardSpy is available under the MIT license. See the LICENSE file for more info.

Latest podspec

{
    "name": "KeyboardSpy",
    "version": "1.1",
    "summary": "The Easiest Way to Observe Keyboard Notifications in iOS",
    "description": "KeyboardSpy is a super lightweight and easy to use wrapper that makes observing keyboard notifications in iOS a breeze.",
    "homepage": "https://github.com/Daltron/KeyboardSpy",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Daltron": "[email protected]"
    },
    "source": {
        "git": "https://github.com/Daltron/KeyboardSpy.git",
        "tag": "1.1"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "KeyboardSpy/Classes/**/*",
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This