如何在 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。此代码中可能存在一两个语法错误。
我是 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。此代码中可能存在一两个语法错误。