我在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
,并将它们相互切换。