-
Notifications
You must be signed in to change notification settings - Fork 214
/
DAKeyboardControl.h
60 lines (49 loc) · 2.32 KB
/
DAKeyboardControl.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
// DAKeyboardControl.h
// DAKeyboardControlExample
//
// Created by Daniel Amitay on 7/14/12.
// Copyright (c) 2012 Daniel Amitay. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef void (^DAKeyboardDidMoveBlock)(CGRect keyboardFrameInView, BOOL opening, BOOL closing);
/** DAKeyboardControl allows you to easily add keyboard awareness and scrolling
dismissal (a receding keyboard ala iMessages app) to any UIView, UIScrollView
or UITableView with only 1 line of code. DAKeyboardControl automatically
extends UIView and provides a block callback with the keyboard's current origin.
*/
@interface UIView (DAKeyboardControl)
/** The keyboardTriggerOffset property allows you to choose at what point the
user's finger "engages" the keyboard.
*/
@property (nonatomic) CGFloat keyboardTriggerOffset;
@property (nonatomic, readonly) BOOL keyboardWillRecede;
/** Adding pan-to-dismiss (functionality introduced in iMessages)
@param didMoveBlock called everytime the keyboard is moved so you can update
the frames of your views
@see addKeyboardNonpanningWithActionHandler:
@see removeKeyboardControl
*/
- (void)addKeyboardPanningWithActionHandler:(DAKeyboardDidMoveBlock)didMoveBlock;
- (void)addKeyboardPanningWithFrameBasedActionHandler:(DAKeyboardDidMoveBlock)didMoveFrameBasesBlock
constraintBasedActionHandler:(DAKeyboardDidMoveBlock)didMoveConstraintBasesBlock;
/** Adding keyboard awareness (appearance and disappearance only)
@param didMoveBlock called everytime the keyboard is moved so you can update
the frames of your views
@see addKeyboardPanningWithActionHandler:
@see removeKeyboardControl
*/
- (void)addKeyboardNonpanningWithActionHandler:(DAKeyboardDidMoveBlock)didMoveBlock;
- (void)addKeyboardNonpanningWithFrameBasedActionHandler:(DAKeyboardDidMoveBlock)didMoveFrameBasesBlock
constraintBasedActionHandler:(DAKeyboardDidMoveBlock)didMoveConstraintBasesBlock;
/** Remove the keyboard action handler
@note You MUST call this method to remove the keyboard handler before the view
goes out of memory.
*/
- (void)removeKeyboardControl;
/** Returns the keyboard frame in the view */
- (CGRect)keyboardFrameInView;
@property (nonatomic, readonly, getter = isKeyboardOpened) BOOL keyboardOpened;
/** Convenience method to dismiss the keyboard */
- (void)hideKeyboard;
@end