目前我的文字字段输入为" 111-11-1111"在UITextField中。要求是输入"••• - ••-1111"。这可以与安全文本输入和普通文本的组合或任何其他方式来实现它。
答案 0 :(得分:2)
您必须使用
检查文本字段中的每个文本条目- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
这种方法。在输入一些特定数量后,您可以附加密码。
答案 1 :(得分:1)
你可以像这样实现它。
将变量声明为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
}
请记住将文本字段的文本存储在委托本身中。否则它会给你错误的价值。