有没有办法在用户开始输入时隐藏 UILabel,然后在用户删除所有输入时让它重新出现?
Is there a way to hide a UILabel when the user starts typing, and then make it re-appear if the user removes all input?
我正在尝试实现一个搜索字段,您可以在其中输入一些字符以显示 "possible searches"。一开始,文本框下方有一个小文本,上面写着 "make sure to capitalize letters"。这只是一个 UILabel。当用户开始输入时,我想制作此标签 "disappear"。但是如果用户退格足以删除所有文本 - 我希望标签再次出现。
文本框是由 UITextField 制作的。
这一切都存储在一个视图中。
有没有人知道如何实现这样的东西?
您可以使用这样的选择器将目标添加到您的 textFiled
- 将此目标添加到您的
viewDidLoad
方法中
yourTextFiled.addTarget(self, action: #selector(self.textFieldDidChange(_:)), for: UIControl.Event.editingChanged)
- 在您的
viewDidLoad
方法下方创建这样的选择器方法并设置 if textfield.text.isEmpty 而不是像这样隐藏标签
@objc func textFieldDidChange(_ textField: UITextField) {
if textField.text!.isEmpty {
label.isHidden = false
} else {
label.isHidden = true
}
}
希望你得到你想要的东西!
您可以通过文本字段委托方法 shouldChangeInCharacter 执行此操作并检查文本字段何时为空将标签 isHidden 属性 设置为 false 否则太正确。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if let text = textField.text {
if text.isEmpty {
label.isHidden = false
}
else {
label.isHidden = true
}
}
return true
}
希望对您有所帮助。编码愉快!
我正在尝试实现一个搜索字段,您可以在其中输入一些字符以显示 "possible searches"。一开始,文本框下方有一个小文本,上面写着 "make sure to capitalize letters"。这只是一个 UILabel。当用户开始输入时,我想制作此标签 "disappear"。但是如果用户退格足以删除所有文本 - 我希望标签再次出现。
文本框是由 UITextField 制作的。
这一切都存储在一个视图中。
有没有人知道如何实现这样的东西?
您可以使用这样的选择器将目标添加到您的 textFiled
- 将此目标添加到您的
viewDidLoad
方法中
yourTextFiled.addTarget(self, action: #selector(self.textFieldDidChange(_:)), for: UIControl.Event.editingChanged)
- 在您的
viewDidLoad
方法下方创建这样的选择器方法并设置 if textfield.text.isEmpty 而不是像这样隐藏标签
@objc func textFieldDidChange(_ textField: UITextField) {
if textField.text!.isEmpty {
label.isHidden = false
} else {
label.isHidden = true
}
}
希望你得到你想要的东西!
您可以通过文本字段委托方法 shouldChangeInCharacter 执行此操作并检查文本字段何时为空将标签 isHidden 属性 设置为 false 否则太正确。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if let text = textField.text {
if text.isEmpty {
label.isHidden = false
}
else {
label.isHidden = true
}
}
return true
}
希望对您有所帮助。编码愉快!