0

iOS9 Xcode7 beta6: をUITextView使用してキーボード (カスタム/デフォルト) を切り替えようとしていreloadInputViews()ます。変更UIKeyboardTypeUIKeyboardAppearance呼び出しreloadInputViews()は完全に機能します。また、次のコードは 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と関係のないものは1つもありません。前に言ったように、iOS8でも機能します。

誰かがこのバグに遭遇しましたか?

4

2 に答える 2

2

順序を変更しようとしましたか?閉じてから、キーボードを再度表示するためです。それは理にかなっていますか?:

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
于 2015-09-01T16:55:40.333 に答える
0

このバグは、ボード上に iOS9 を搭載したシミュレーターに関連しており、最終的にはチェックを外すことで修正されましたKeyboard -> Connect -> Hardware Keyboard

于 2015-09-03T19:09:43.987 に答える