当我使用默认安全文本在UITextField在Swift语言中输入一次UITextField类型的文本后。如何在Swift中不清楚UITextField安全文本输入?
一旦失去重心从的UITextField尝试编辑安全文本之后再的UITextField首先复位,它开始把新的文本中的UITextField后。
如何编辑旧安全文字没有将数据存储到任何String对象的类
当我使用默认安全文本在UITextField在Swift语言中输入一次UITextField类型的文本后。如何在Swift中不清楚UITextField安全文本输入?
一旦失去重心从的UITextField尝试编辑安全文本之后再的UITextField首先复位,它开始把新的文本中的UITextField后。
如何编辑旧安全文字没有将数据存储到任何String对象的类
我建议创建一个自定义UITextField类和重写becomeFirstResponder()方法不添加您所需的功能:
您可以在自定义响应者中覆盖此方法来更新对象的状态或执行某些操作,例如突出显示 选择。如果您重写此方法,则必须在实现中的某个点处调用超级点。
自定义类应类似于:
class CustomSecureTextField: UITextField {
override func becomeFirstResponder() -> Bool {
super.becomeFirstResponder()
if !isSecureTextEntry { return true }
if let currentText = text { insertText(currentText) }
return true
}
}
的becomeFirstResponder
执行的逻辑如下:
默认情况下,确保录入文本字段清除插入的文本时,成为第一响应者的文本,所以CustomSecureTextField
发生了什么,如果文本字段是安全入口,它将重新插入当前插入的文本 - 清除后 - 但你必须确保文本字段输入是安全的(这就是添加if !isSecureTextEntry { return true }
的目的),或者每当文本字段成为第一响应者时文本将被复制(重新插入)。
输出:
注意,这两个文本字段都是类型CustomSecureTextField
:
让我仔细检查。 –
当然!不要忘记让你的文本字段为'CustomSecureTextField'类型。 –
是的,我知道谢谢你提醒我。 –