UITextView 不会将输入工具栏切换到自定义键盘

UITextView doesn't switch input toolbar to custom keyboard

iOS9 Xcode7 beta6:我正在尝试使用 reloadInputViews()UITextView 的键盘 (custom/default) 之间切换。通过调用 reloadInputViews() 来更改 UIKeyboardTypeUIKeyboardAppearance 效果很好。此外,以下代码在 iOS8.

下运行良好

这意味着 textView 已经是第一响应者:

private func showCustomKeyboard() {
    textView.inputView = customKeyboardView
    textView.reloadInputViews()
}

private func showDefaultKeyboard() {
    textView.inputView = nil
    textView.reloadInputViews()
}

像下面这样的东西没有效果,而且看起来有点矫枉过正:

textView.inputView.resignFirstResponder()
textView.inputView.becomeFirstResponder()
textView.inputView = customKeyboardView
textView.reloadInputViews()

我在 SO 上发现了几个相关问题,但没有一个与 iOS9 无关,正如我之前所说,它确实适用于 iOS8。

有人遇到过这个错误吗?

您是否尝试更改顺序?因为你解雇了,然后又显示了一个键盘。有道理吗?:

textView?.inputView.resignFirstResponder() // dismiss keyboard
textView?.inputView.becomeFirstResponder() // show keyboard
textView?.inputView = customKeyboardView // reassign new keyboard
textView?.reloadInputViews() // reload keyboard

尝试:

textView?.inputView.resignFirstResponder() // dismiss keyboard
textView?.inputView = customKeyboardView // reassign new keyboard
textView?.reloadInputViews() // reload keyboard
textView?.inputView.becomeFirstResponder() // show keyboard

该错误与板上带有 iOS9 的模拟器有关,最终已通过取消选中 Keyboard -> Connect -> Hardware Keyboard 得到修复。