以编程方式更改 UITextField 的文本内容类型不会更新键盘自动填充



我在UITextField上设置.textContentType,然后以编程方式更改它(就像我重用UITextField一样(。在我更换键盘后,我也不会解雇它。

键盘不会更新以显示新.textContentType的自动填充选项。我还在调试器中确认了UITextField更新了.textContentType

let textField = UITextField()
textField.becomesFirstResponder() // show the keyboard
textField.textContentType = .email
textField.textContentType = .familyName // Doesn't update keyboard autofill

上面的例子是对我实际代码的简化,但应该会重现这个问题。你可能会说,为什么我不创建一个新的UITextField或取消键盘呢?我正在创建的视图类似于iMessage流,其中一个文本字段用于不同的消息,所以重用它非常重要。

编辑:当您离开应用程序并返回时,键盘将具有更新的自动填充功能。

我唯一能解决这个问题的方法是用不同的textContentType创建第二个UITextField,并将它们相互切换。

最新更新