• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift3.0对UITextField()输入框输入的内容进行监控

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

首先需要继承 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则放弃编辑,输入框内容不会变更


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
IOS/Swift暂停和恢复图层动画发布时间:2022-07-13
下一篇:
使用纯swift代码文件制作framework发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap