RDRStickyKeyboardView 0.0.2

RDRStickyKeyboardView 0.0.2

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

未认领维护。



  • Damiaan Twelker

在iOS 7上复制iMessage文本输入行为(UIScrollViewKeyboardDismissModeInteractive + 持久的 inputAccessoryView)。

它做什么

在苹果iMessage应用的聊天视图中,可以交互式地关闭键盘。这个功能通过在iOS 7中公开引入UIScrollViewkeyboardDismissMode属性和相应的枚举值来实现的。

忽略新的keyboardDismissMode属性,始终很难在不是第一响应者的情况下让UITextView可见,而这时候它仍然是第一响应者时,它还粘附在键盘上。新的keyboardDismissMode没有解决这个问题。RDRStickyKeyboardViewUIView的子类,其中包含一个UIScrollView实例(或子类)和一个粘在底部的文本输入视图。当用户点击文本输入视图时,它会随着键盘一起向上动画。用户可以在随后拖动键盘的同时,输入视图跟随并当用户停止拖动时回到原位。作为额外的奖励,RDRStickyKeyboardView提供的输入视图是自动增长的。

它是如何工作的

RDRStickyKeyboardView使用两个自定义的RDRKeyboardInputView类实例(我们可以称它们为A和B),用作输入视图,并包含在左侧的一个UIButton,中间的一个UITextView,以及右侧的一个UIButton。实例A始终位于视图的底部,B是A的UITextViewinputAccessoryView。一旦A的UITextView成为第一响应者,第一响应者状态会被传递给B,它会粘附在键盘的顶部。两个输入视图A和B中的UITextView实例中输入的文本是同步的。

如何使用

查看示例项目以了解更多信息。

UITableView *tableView = ...;
RDRStickyKeyboardView *keyboardView = [[RDRStickyKeyboardView alloc] initWithScrollView:tableView];
keyboardView.frame = self.view.bounds;
keyboardView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
[self.view addSubview:keyboardView];

Demo

要求

  • ARC
  • iOS 7

已知问题

  • 设备的方向改变后,键盘的inputAccessoryView更新,而不是在旋转期间
  • 编辑时始终可见键盘,包括连接了外部键盘

许可证

代码被MIT许可证所授权。有关详细信息,请参阅文件LICENSE