Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 限制插入UITextField的字符数_Swift_Uitextfield - Fatal编程技术网

Swift 限制插入UITextField的字符数

Swift 限制插入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

如何更改用户只需添加一个的UITextField。并且只有两个数字在后面。->在poi^nt后面有两位数字的十进制数。

使用UITextFieldDelegate

// 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请毫不犹豫地提供您迄今为止尝试过的内容…请记住,世界上很多人都不使用
作为十进制分隔符。这不是一个好的解决方案,因为并非所有用户都使用
作为十进制分隔符。