美文网首页Swift工作笔记
Swift.10行代码为TextField添加金额输入限制

Swift.10行代码为TextField添加金额输入限制

作者: 王四猫 | 来源:发表于2019-05-21 10:57 被阅读0次

    实现效果:

    通过textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 代理方法对textField输入内容进行限制,保证只能输入有效金额。

    实现思路:

    首先设置TextField的keyboardType为.decimalPad,只能输入数字与小数点。之后在代理方法中,对输入字符为"."和"0"两种情况进行限制。

    完整代码

        let textField: UITextField = {
            let textField = UITextField(frame: CGRect(x: 100, y: 200, width: 200, height: 50))
            textField.keyboardType = .decimalPad
            return textField
        }()
    
    extension ViewController : UITextFieldDelegate {
        func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            
            guard string == "." || string == "0" else { return true }
            guard let text = textField.text else { return true }
            if text.count == 0 {
                textField.text = "0."
                return false
            }
            if text.range(of: ".") != nil && string == "." {
                return false
            }
            return true
        }
    }
    

    demo地址: EWNumberTextField

    有问题欢迎探讨.

    相关文章

      网友评论

        本文标题:Swift.10行代码为TextField添加金额输入限制

        本文链接:https://www.haomeiwen.com/subject/lhedzqtx.html