关于UITextFiled的完成回调方法 TextFieldDidChange

今天测试非要给一个textFiled加上字数限制功能,不能让其超过多少个字符,然后我看了一下貌似UITextFiled没有完成回调的代理方法.所以我用shouldChangeCharactersInRange这个方法

    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        if textField.tag == 101{
            if (textField.text?.characters.count)! + string.characters.count > 100{
                showHint("标题最多输入100个字符")
                let tempStr = textField.text! + string
                textField.text = (tempStr as NSString).substringToIndex(100)
                textField.resignFirstResponder()
                return false
            }
        }
        return true
    }

测试下来粘贴进来和直接打字的测试OK了,但是在联想输入的不调用这个回调方法.所以上网百度了一下发现可以这样做
先给textFiled添加一个相应方法,然后实现这个方法就可以了,对于直接输入的,粘贴进去的,联想输入的都可以响应到

titleTextFiled.addTarget(self, action: Selector("textFieldDidChange:"), forControlEvents: .EditingChanged)

    func textFieldDidChange(sender:UITextField){
        if sender.text?.characters.count > 100{
            showHint("标题最多输入100个字符")
            sender.text = (sender.text! as NSString).substringToIndex(100)
            sender.resignFirstResponder()
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • UITextField对象用于在你的界面上显示一个可编辑的文本区域。使用文本区域可以收集来自用户使用屏幕上的键盘输...
    零度_不结冰阅读 1,017评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,366评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,242评论 19 139
  • 晚上问了二美,回答说是不用命题也行,突然轻松了许多。 我,今年30了,生活在景德镇,一个有着千年制瓷...
    韦姐姐私房茶阅读 364评论 3 3
  • 先写几个设定,方便后面开脑洞。 获得一笔财富,如何掩饰、使用 获得一个能力,如何掩饰、使用 到了一个新的空间时间,...
    不靠谱电台阅读 465评论 0 2