swift限制UITextField输入的小数位数

今天要实现一个需求,限制textFiled的只能输入带两位小数的数字,参考网上找到的方法,并加以改进.

首先,自定义一个cell,设置textField的keyBoardtype为 DecimalPad(只能输入数字和小数点的键盘)

然后成为textField的代理并遵守UITextFieldDelegate协议,重写textField的代理方法shouldChangeCharactersInRange

swift限制UITextField输入的小数位数_第1张图片
代码图

limitNum为限制的小数位数,如设置小数限制位数为2,则textField仅能输入两位小数,且不能以小数点"."开头,也不能输入两个或两个以上的小数点"."代码copy如下

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {        var futureStr = textField.text        futureStr?.appendContentsOf(string)        if futureStr == nil{            futureStr = ""        }        var flag = -1        var pointIndex = 0        var isSeePoint = false        for i in 0..limitNum{

ZCLog("插入的位置\(range.location)")

if range.location < pointIndex{

return true

}

return false

}

}

}

return true

}

你可能感兴趣的:(swift限制UITextField输入的小数位数)