【问题标题】:Secure TextField clears whole text, on clearing single character using backspace [duplicate]Secure TextField 清除整个文本,使用退格键清除单个字符 [重复]
【发布时间】:2023-03-05 00:58:01
【问题描述】:

当我尝试使用退格键清除文本字段中的单个字符时,我使用了两个安全文本字段(新密码和确认密码)。它清除整个文本。如何解决这个问题

【问题讨论】:

    标签: ios swift xcode


    【解决方案1】:

    您需要检测backspace 被点击,然后使用textField委托从字符串中删除最后一个元素

    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    let  char = string.cString(using: String.Encoding.utf8)!
    let isBackSpace = strcmp(char, "\\b")
    
    if (isBackSpace == -92) {
         print("Backspace pressed")
    }
    return true
    }
    

    不要忘记将 UITextFieldDelegate 添加到您的 ViewController

    【讨论】:

    • let isBackSpace = strcmp(char, "\b") -> 文字中的转义序列无效
    • 试试“\\b”,这样应该可以解决这个错误
    • 你能解释一下它是如何工作的吗?
    • 我可以,但我的英语可能不足以解释它:)。这是很好的解释stackoverflow.com/a/51577826/9110909@VikramanR
    猜你喜欢
    • 2019-06-26
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 2016-10-14
    • 2022-11-18
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多