iOS谷歌环聊键盘如何工作?

时间:2015-11-30 13:48:52

标签: ios custom-keyboard

我需要复制google hangouts键盘。现在我使用自定义视图inputAccessoryView。使用inputAccessoryView可以隐藏键盘interactively(从IB中设置在TableViewController中的选项),因此当用户将键盘向下滑动时,键盘会被隐藏。

如果您想从图库中发送文字或图片或拍照,您可以选择键盘...当您点按“图像库”按钮"时,键盘会隐藏并显示键盘空间中图库中的图像。这是我的问题,我不知道如何隐藏键盘但是继续显示" inputAccessoryView"在完全相同的位置......我还应该在哪里放置显示图像的视图?因为如果我将所有内容都包含在" inputAccessoryView"自定义视图,它会一直显示,因为它将包含在我的自定义视图的xib中...

这是一个关于键盘行为的gif:

enter image description here

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

您可以使用文本字段的inputView属性。

  

文本字段成为第一个时显示的自定义输入视图   响应者。

     

@property(readwrite,strong)UIView * inputView

     

如果此属性中的值为nil,则为文本字段   当它成为第一响应者时显示标准系统键盘。   为此属性分配自定义视图会导致该视图   提出来了。

     

此属性的默认值为nil。

source

它基本上允许您将任何视图用作输入视图。

你可以"热插拔"就像这样:

[textField resignFirstResponder];
textField.inputView = yourCustomView
[textField becomeFirstResponder];

inputAccessoryView将保持不变(假设您的视图框架与键盘的视图框架匹配)。我似乎无法弄清楚隐藏键盘的动画,这可能有些棘手。有点hackish的方法是获取键盘的屏幕截图,将其添加为视图并为其设置动画。