如何在ios中组合使用密码点和普通文本的UITextField
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在ios中组合使用密码点和普通文本的UITextField相关的知识,希望对你有一定的参考价值。
目前我的文本字段在UITextField中输入为“111-11-1111”。要求是输入“••• - ••-1111”。这可以与安全文本输入和普通文本的组合或任何其他方式来实现它。
答案
你可以像这样实现它。
将变量声明为textCount
var textCount = 0
var originalString = String()
然后覆盖函数func textField(_ textField:UITextField,shouldChangeCharactersIn范围:NSRange,replacementString string:String) - > Bool如下:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string == "" {
textCount = textCount - 1
var truncated = textField.text?.substring(to: (textField.text?.index(before: (textField.text?.endIndex)!))!)
textField.text = truncated
if textCount == 5 || textCount == 3 {
let truncated = textField.text?.substring(to: (textField.text?.index(before: (textField.text?.endIndex)!))!)
textField.text = truncated
}
truncated = originalString.substring(to: originalString.index(before: originalString.endIndex))
originalString = truncated!
}
else if textCount < 9 {
if textCount == 3 || textCount == 5 {
textField.text = textField.text! + "-"
}
if textCount <= 4 {
textField.text = textField.text! + "*"
originalString.append(string)
}
else {
textField.text = textField.text! + string
originalString.append(string)
}
textCount = textCount + 1
}
print(originalString)
return false
}
请记住将文本字段的文本存储在委托本身中。否则它会给你错误的价值。
另一答案
您必须使用以下方法检查文本字段中的每个文本条目
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
这种方法。在输入一些特定数量后,您可以附加密码。
以上是关于如何在ios中组合使用密码点和普通文本的UITextField的主要内容,如果未能解决你的问题,请参考以下文章