Swift 限制插入UITextField的字符数
如何更改用户只需添加一个的UITextField。并且只有两个数字在后面。->在poi^nt后面有两位数字的十进制数。使用UITextFieldDelegateSwift 限制插入UITextField的字符数,swift,uitextfield,Swift,Uitextfield,如何更改用户只需添加一个的UITextField。并且只有两个数字在后面。->在poi^nt后面有两位数字的十进制数。使用UITextFieldDelegate // MARK:- TEXTFIELD DELEGATE func textField(_ textField: UITextField,shouldChangeCharactersIn range: NSRange,replacementString string: String) -> Bool { let count
// MARK:- TEXTFIELD DELEGATE
func textField(_ textField: UITextField,shouldChangeCharactersIn range: NSRange,replacementString string: String) -> Bool
{
let countdots = (txf_Amount.text?.components(separatedBy: ".").count)! - 1
if countdots > 0 && string == "."
{
return false
}
let MAX_BEFORE_DECIMAL_DIGITS = 7
let MAX_AFTER_DECIMAL_DIGITS = 3
let computationString = (textField.text! as NSString).replacingCharacters(in: range, with: string)
// Take number of digits present after the decimal point.
let arrayOfSubStrings = computationString.components(separatedBy: ".")
if arrayOfSubStrings.count == 1 && computationString.characters.count > MAX_BEFORE_DECIMAL_DIGITS {
return false
} else if arrayOfSubStrings.count == 2 {
let stringPostDecimal = arrayOfSubStrings[1]
return stringPostDecimal.characters.count <= MAX_AFTER_DECIMAL_DIGITS
}
return true
}
//标记:-TEXTFIELD委托
func textField(textField:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool
{
让countdots=(txf_Amount.text?.components(以“.”分隔)。count)!-1
如果countdots>0&&string==”
{
返回错误
}
设小数位数前的MAX=7
设小数位数后的MAX=3
让计算字符串=(textField.text!作为NSString)。replacingCharacters(在:范围内,使用:字符串)
//取小数点后的位数。
让arrayOfSubStrings=computationString.components(以“.”分隔)
如果arrayOfSubStrings.count==1&&ComputerString.characters.count>MAX\u BEFORE\u DECIMAL\u数位{
返回错误
}如果arrayOfSubStrings.count==2,则为else{
设stringPostDecimal=ArrayOfSubString[1]
return stringPostDecimal.characters.count请毫不犹豫地提供您迄今为止尝试过的内容…请记住,世界上很多人都不使用
作为十进制分隔符。这不是一个好的解决方案,因为并非所有用户都使用
作为十进制分隔符。