Objective-c 库,用于跟踪 iOS 应用中的键盘。
如果您使用 Cocoapods,添加到您的 Podfile
pod 'NgKeyboardTracker'
手动添加到您的项目
NgKeyboardTracker
文件夹中的文件添加到您的项目中。UIKit
。NgKeyboardTracker
封装了 iOS 应用中的键盘跟踪。它使得在任何地方查询键盘的属性都变得方便。
您还可以使用 NgKeyboardTracker
来实现 iOS 7 上 iMessage 的文本输入行为(使用 UIScrollViewKeyboardDismissModeInteractive
和持久的 inputAccessoryView
)通过 NgPseudoInputAccessoryViewCoordinator
。
在您的应用程序代理中
- (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
协议。-addDelegate:
方法注册为代理-removeDelegate:
来停止接收键盘更新键盘跟踪器属性
appearanceState
: 当前显示状态beginFrame
: 最后已知的开始帧endFrame
: 最后已知的结束帧currentFrame
: 最后已知的当前键盘帧animationDuration
: 最后已知的动画持续时间animationCurve
: 最后已知的动画曲线animationOptions
: 从 animationCurve
导出,方便使用注意事项:键盘的 frame.size.height
系统键盘高度加上 inputAccessoryView
高度。
NgPseudoInputAccessoryViewCoordinator
是 NgKeyboardTracker
的扩展,它通过使用 UIScrollViewKeyboardDismissModeInteractive
和持久 inputAccessoryView
,使在 iOS 7 上实现 iMessage 的文本输入行为变得更容易。
视图控制器
loadView
以设置自定义的 UIView 实现。becomeFirstResponder
。自定义视图
-createPseudoInputAccessoryViewCoordinator
创建 NgPseudoInputAccessoryViewCoordinator
。-canBecomeFirstResponder
,返回 YES
。-inputAccessoryView
,返回协调器的pseudoInputAccessoryView
。UIScrollView
的键盘隐藏模式设置为UIScrollViewKeyboardDismissModeInteractive
。-setPseudoInputAccessoryViewHeight:
设置输入辅助视图所需的高度。NgKeyboardTracker
在layoutSubviews
中获得的信息相应布局键盘栏。备注:请参见示例演示应用。