NgKeyboardTracker 1.0.8

NgKeyboardTracker 1.0.8

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年11月

Meiwin Fu 维护。



  • 作者
  • Meiwin Fu

Objective-c 库,用于跟踪 iOS 应用中的键盘。

添加到您的项目

如果您使用 Cocoapods,添加到您的 Podfile

pod 'NgKeyboardTracker'

手动添加到您的项目

  1. NgKeyboardTracker 文件夹中的文件添加到您的项目中。
  2. 将以下框架添加到您的项目中: 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
}

响应用户键盘更新

  1. 实现 NgKeyboardTrackerDelegate 协议。
  2. 通过调用 -addDelegate: 方法注册为代理
  3. 一定要调用 -removeDelegate: 来停止接收键盘更新

键盘跟踪器属性

  • appearanceState : 当前显示状态
  • beginFrame : 最后已知的开始帧
  • endFrame: 最后已知的结束帧
  • currentFrame: 最后已知的当前键盘帧
  • animationDuration: 最后已知的动画持续时间
  • animationCurve: 最后已知的动画曲线
  • animationOptions : 从 animationCurve 导出,方便使用

注意事项:键盘的 frame.size.height 系统键盘高度加上 inputAccessoryView 高度。

伪输入辅助视图协调器

NgPseudoInputAccessoryViewCoordinatorNgKeyboardTracker 的扩展,它通过使用 UIScrollViewKeyboardDismissModeInteractive 和持久 inputAccessoryView,使在 iOS 7 上实现 iMessage 的文本输入行为变得更容易。

视图控制器

  1. 覆盖 loadView 以设置自定义的 UIView 实现。
  2. 一定要调用自定义视图的 becomeFirstResponder

自定义视图

  1. 通过调用 -createPseudoInputAccessoryViewCoordinator 创建 NgPseudoInputAccessoryViewCoordinator
  2. 覆盖 -canBecomeFirstResponder,返回 YES
  3. 重写-inputAccessoryView,返回协调器的pseudoInputAccessoryView
  4. UIScrollView的键盘隐藏模式设置为UIScrollViewKeyboardDismissModeInteractive
  5. 使用-setPseudoInputAccessoryViewHeight:设置输入辅助视图所需的高度。
  6. 根据NgKeyboardTrackerlayoutSubviews中获得的信息相应布局键盘栏。

备注:请参见示例演示应用。