在 iOS 中为标准键盘换出自定义 inputView

Swap out a custom inputView for the standard keyboard in iOS

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

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

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

非常感谢您的任何建议。

我认为您可能必须这样做:

  1. UITextField
  2. 上致电 resignFirstResponder
  3. 动画结束后,将您的 inputView 设置为 nil
  4. 在文本字段上调用 ​​becomeFirstResponder

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

除了已接受的答案外,您还可以使用 reloadInputViews()(这不太可能遭受 resignFirstResponder、becomeFirstResponder 调用导致的任何动画故障):

  1. yourTextField.inputView = nil;
  2. yourTextField.reloadInputViews();

Apple's Docs 中有更多信息。