Awe*_*ple 3 uitextfield ios swift
我需要显示“#”而不是项目符号密码字段中但由于 UITextField 中没有可用的默认选项。
我尝试在“shouldChangeCharactersInRange”中编写自定义逻辑中编写自定义逻辑 ,但是当用户从中间删除或添加任何特定字符时,我无法处理索引。
所以这是我的问题:- 1.我是否需要找到任何库 2.还有其他可用的默认选项吗?3. 需要为其编写自定义逻辑?如果是这样,我可以正确处理它“shouldChangeCharactersInRange”或“textFieldDidChange”
是的,您需要根据您的需求编写自定义逻辑,所以这里是......
var passwordText = String()
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == textFieldPassword {
var hashPassword = String()
let newChar = string.characters.first
let offsetToUpdate = passwordText.index(passwordText.startIndex, offsetBy: range.location)
if string == "" {
passwordText.remove(at: offsetToUpdate)
return true
}
else { passwordText.insert(newChar!, at: offsetToUpdate) }
for _ in passwordText.characters { hashPassword += "#" }
textField.text = hashPassword
return false
}
Run Code Online (Sandbox Code Playgroud)func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == textFieldPassword {
var hashPassword = String()
let newChar = string.first
let offsetToUpdate = passwordText.index(passwordText.startIndex, offsetBy: range.location)
if string == "" {
passwordText.remove(at: offsetToUpdate)
return true
}
else { passwordText.insert(newChar!, at: offsetToUpdate) }
for _ in 0..<passwordText.count { hashPassword += "#" }
textField.text = hashPassword
return false
}
return true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3738 次 |
| 最近记录: |