如何检查文本字段在 Swift 中是否有多个字母?
How to check if textfield has more than one letter in Swift?
我正在 Swift 中的文本字段上工作,我要实现的是禁用导航按钮,除非文本字段中有 0 个字符,并在文本上添加删除按钮如果文本字段中的字母超过 1 个,例如 iOS 默认日历应用程序。
当标题文本字段中没有字母时,栏按钮项“添加”将被禁用。
启用“添加”按钮并在“标题”文本字段中有 1 个以上字母时显示删除按钮。
我查看了文本字段委托方法,我认为我可以通过使用 shouldChangeCharactersIn 方法来实现我正在尝试的方法 (?)
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
// check if there is a letter in the text field
// if there is, enable the Add button and show delete icon
// if there is not, disable the add button and hide the delete icon
return true
}
我想知道是否有其他方法可以实现此功能?我认为每当在文本字段中键入/删除一个字母时,每次都会调用上面的函数,所以我想知道是否有其他方法可以轻松实现这些东西。
func textFieldDidChangeSelection(_ textField: UITextField) {
validateTextField(text:textField.tex)
}
您的方法 shouldChangeCharactersIn 有时无法正常工作
所以可以用这个方法
创建一个函数来获取文本并禁用和启用导航栏和删除按钮,如
func validateTextField(text:String) {
if text.count > 1 {
textField.clearButtonMode = .whileEditing
} else if text.count <= 1 {
textField.clearButtonMode = .never
} else if text.count < 1 {
navigationItem.leftBarButtonItem.tintColor = .lightGray
}
您可以对特定的文本字段文本计数使用故事板方法。
1.Ctrl + Click on the textfield in interface builder.
- 从 EditingChanged 拖动到助手视图中的视图控制器内部 class。
3.Name 您的函数(例如“textFieldEditingChanged”)并点击连接。
我正在 Swift 中的文本字段上工作,我要实现的是禁用导航按钮,除非文本字段中有 0 个字符,并在文本上添加删除按钮如果文本字段中的字母超过 1 个,例如 iOS 默认日历应用程序。
当标题文本字段中没有字母时,栏按钮项“添加”将被禁用。
启用“添加”按钮并在“标题”文本字段中有 1 个以上字母时显示删除按钮。
我查看了文本字段委托方法,我认为我可以通过使用 shouldChangeCharactersIn 方法来实现我正在尝试的方法 (?)
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
// check if there is a letter in the text field
// if there is, enable the Add button and show delete icon
// if there is not, disable the add button and hide the delete icon
return true
}
我想知道是否有其他方法可以实现此功能?我认为每当在文本字段中键入/删除一个字母时,每次都会调用上面的函数,所以我想知道是否有其他方法可以轻松实现这些东西。
func textFieldDidChangeSelection(_ textField: UITextField) {
validateTextField(text:textField.tex)
}
您的方法 shouldChangeCharactersIn 有时无法正常工作 所以可以用这个方法 创建一个函数来获取文本并禁用和启用导航栏和删除按钮,如
func validateTextField(text:String) {
if text.count > 1 {
textField.clearButtonMode = .whileEditing
} else if text.count <= 1 {
textField.clearButtonMode = .never
} else if text.count < 1 {
navigationItem.leftBarButtonItem.tintColor = .lightGray
}
您可以对特定的文本字段文本计数使用故事板方法。
1.Ctrl + Click on the textfield in interface builder.
- 从 EditingChanged 拖动到助手视图中的视图控制器内部 class。
3.Name 您的函数(例如“textFieldEditingChanged”)并点击连接。