TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Nov 2015 |
Maintained by Meiwin Fu.
Objective-c library for tracking keyboard in iOS apps.
If you are using Cocoapods, add to your Podfile:
pod 'NgKeyboardTracker'
To manually add to your projects:
NgKeyboardTracker
folder to your project.UIKit
.NgKeyboardTracker
encapsulates keyboard tracking for iOS apps.
It provides convenience to query keyboard's properties anywhere in your application.
You can also use NgKeyboardTracker
to implement iMessage's text input behavior on iOS 7 (UIScrollViewKeyboardDismissModeInteractive
+ persistent inputAccessoryView
) using NgPseudoInputAccessoryViewCoordinator
.
In your application delegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[NgKeyboardTracker sharedTracker] start]; // start tracking
return YES;
}
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
[[NgKeyboardTracker sharedTracker] stop]; // stop tracking
}
NgKeyboardTrackerDelegate
protocol.-addDelegate:
method-removeDelegate:
to stop receiving keyboard updatesKeyboard tracker's properties:
appearanceState
: current appearance statebeginFrame
: last known begin frameendFrame
: last known framecurrentFrame
: last known current keyboard's frameanimationDuration
: last known animation durationanimationCurve
: last known animation curveanimationOptions
: derived from animationCurve
for convenienceP.S. keyboard's frame.size.height
system's keyboard height plus inputAccessoryView
height.
NgPseudoInputAccessoryViewCoordinator
is NgKeyboardTracker
extension that makes it easier to implement iMessage's text input behavior in iOS 7 with UIScrollViewKeyboardDismissModeInteractive
and persistent inputAccessoryView
.
The view controller:
loadView
to set custom UIView implementation.becomeFirstResponder
.The custom view:
NgPseudoInputAccessoryViewCoordinator
by calling -createPseudoInputAccessoryViewCoordinator
.-canBecomeFirstResponder
, returns YES
.-inputAccessoryView
, returns coordinator's pseudoInputAccessoryView
.UIScrollView
's keyboard dismiss mode to UIScrollViewKeyboardDismissModeInteractive
.-setPseudoInputAccessoryViewHeight:
.NgKeyboardTracker
in layoutSubviews
.P.S. See demo application for example.