如何从 UITextField Delegate 获取当前输入的文本? [复制]

Posted

技术标签:

【中文标题】如何从 UITextField Delegate 获取当前输入的文本? [复制]【英文标题】:How to get currently entering text from UITextField Delegate? [duplicate] 【发布时间】:2021-02-05 05:35:24 【问题描述】:

我使用了这个委托方法,但它没有返回我输入的最后一个字符。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool

例如。当前文本字段字符串是“123”,当我输入“4”时,文本字段字符串是“1234”但上面的委托方法只返回“123”,现在再次输入“5”然后上面的方法返回“1234”但我期待“12345”

【问题讨论】:

【参考方案1】:

但后来我找到了适合我的解决方案

斯威夫特 5

 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 
        
        var finalString = ""
        if range.length > 0 
            finalString = "\(textField.text!.dropLast())"
         else 
            finalString = "\(textField.text! + string)"
        
        print(finalString)
        return true
    

【讨论】:

以上是关于如何从 UITextField Delegate 获取当前输入的文本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

浅谈UITextfield的delegate(当然很多时候可用键值监听的方法代替)

设置UITextField的最大字符长度

键入时如何计算直播的UITextField字数(Swift)?

UITextField 中的自动音译

UI控件(UITextField)

关闭 UITextField 中的键盘