在iOS中交换标准键盘的自定义inputView

时间:2015-05-23 19:13:18

标签: ios swift keyboard inputview

我有一个特定文本字段的自定义inputView,它运行良好。但是,我无法辨别如何关闭视图并恢复常规键盘。 (我在TextField旁边有一个SWAP按钮。)我尝试将textfield的inputView设置为nil,但这没有做任何事。

我不需要一个完整的自定义键盘,但我需要的不仅仅是键盘上方的附件视图,这就是我尝试这条路线的原因。除常规键盘外,我还需要大约20个自定义按钮,我不喜欢巨大的附件视图占用太多空间的想法。

我还不想要用户在能够使用该应用程序之前最初安装完整的自定义键盘。

非常感谢您的任何建议。

2 个答案:

答案 0 :(得分:9)

我想你可能不得不这样做:

  1. 致电resignFirstResponder
  2. 上的UITextField
  3. 动画播完后,将inputView设为nil
  4. 在文本字段
  5. 上调用becomeFirstResponder

    键盘动画持续时间在键盘演示通知的userInfo字典中发送。

答案 1 :(得分:4)

除了接受的答案,你可以使用reloadInputViews()(这不太可能遭受resignFirstResponder导致的任何动画故障,成为第一个响应者调用):

  1. yourTextField.inputView = nil;
  2. yourTextField.reloadInputViews();
  3. 以下是Apple's Docs中的更多信息。