zoukankan      html  css  js  c++  java
  • swift3.0 对UITextField()输入框输入的内容进行监控

    首先需要继承 UITextFieldDelegate

    class TestViewController: UIViewController,UITextFieldDelegate{
    
    }
    

    添加事件委托

    textField.delegate = self
    

    点击输入框时触发以下事件:

    func textFieldDidBeginEditing(_ textField: UITextField){
    
    }
    

    我的需求为输入一百以内最多为两位小数,使用以下方式对输入的值进行实时监控

     func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            
            var newString = (textField.text! as NSString).replacingCharacters(in: range, with: string)
            let expression = "^[0-9]*(?:\.[0-9]{0,2})?$"
                
            do {
                let regex: NSRegularExpression = try NSRegularExpression(pattern: expression, options: NSRegularExpression.Options.caseInsensitive)
                let numberOfMatches = regex.matches(in: newString, options: NSRegularExpression.MatchingOptions.reportProgress, range: NSMakeRange(0, newString.characters.count))
                
                if numberOfMatches.count == 0{
                    return false
                }else{
                        
                    if newString != "" {
                        if newString[newString.startIndex] == "." {
                            newString = "0" + newString
                        }
                            
                        if newString[newString.index(before: newString.endIndex)] == "." {
                            newString = newString + "0"
                        }
                            
                        if (Double(newString)! > 100.0){
                            account_textfield.text = "100"
                            return false
                        }
                    }
                    return true
                }      
            }
            catch {
                return false
            }
        }
    

    通过return值对输入框的值进行控制,return false则放弃编辑,输入框内容不会变更

  • 相关阅读:
    BUG处理流程图
    开发认为不是bug,你该如何处理?
    读书笔记:平台革命
    我的工具:开发自己的代码生成工具
    我的工具:Db SQL Monitor
    我的工具:Ping工具
    windows配置nginx实现负载均衡集群 -请求分流
    Oracle完全卸载详解
    Wireshark过滤语句中常用的操作符
    TCP 传输控制协议(转)
  • 原文地址:https://www.cnblogs.com/kunH/p/6764929.html
Copyright © 2011-2022 走看看