如何在 UITextField (swift) 中启用清除按钮操作?

How to enable a clear button action in UITextField (swift)?

我是 Swift 的新手,我有一个不知道如何解决的问题。所以,我有一个 UITextField,其中我在文本字段中最多有 5 个字符的限制,我可以在第五个字符处停止,但问题是我无法清除文本,因为清除按钮可能考虑成为 iOS 中的角色。

谁能帮我解决这个问题?

这是我的代码:

func textField(textField: UITextField, 
          shouldChangeCharactersInRange range: NSRange, 
          replacementString string: String) -> Bool{

    if let count = textField.text?.characters.count {
        if count < 5 {
            print("\(count)")
            return true
        }
        else {
            return false
        }
    }
    return true
}

谢谢。

您想显示 'X' 按钮来清除文本,对吗?然后使用这个:

textField.clearButtonMode = .WhileEditing

您需要检查文本字段的长度,而不是当前的长度。试试这个:

func textField(textField: UITextField, 
          shouldChangeCharactersInRange range: NSRange, 
          replacementString string: String) -> Bool{

    let oldText: NSString = textField.text!
    let newText: NSString = oldText.stringByReplacingCharactersInRange(range, withString: string)

    let count = newText.length 
    if count <= 5 {
         print("\(count)")
         return true
    } else {
         return false
    }
}

注意:我不流利 Swift。此代码中可能存在一两个语法错误。