将操作分配给 UITextField 并更新 UILabel

Assign action to UITextField and update UILabel

我目前正在使用 Swift 4 并正在努力解决一个可能非常简单但我找不到简单解决方案的问题。我会尽可能详细地解释它。

通过使用文本字段,我想为虚拟键盘上的 Send 按钮分配一个操作以提交输入文本,然后我想清除文本字段。提交文本后,我想检查提交的文本是否等于指定的字符串(例如 "hello, playground")。如果提交的文本等于 "hello, playground" 并且因此是正确的,我想更新一个标签来告诉用户 "Correct"

所以流程是这样的:

文本字段 -> 输入文本 -> 使用虚拟 发送 按钮提交文本 -> 清除文本字段 -> 检查提交的文本是否 = 指定的字符串 -> 如果是,更新标签至 "Correct" -> 如果否,什么都不做 -> 重复直到正确。

我希望它是可以理解的,并提前致谢。

假设:

  • 您的文本字段名为 textField
  • 您的标签名为 label

您可以在按钮操作函数中检查它,如下所示:

    if let text = textField.text {
        if text == "Specified Text" {
            label.text = "Correct"
        }
    }

所以如果 textField 的文本等于您指定的文本标签的文本将是 "Correct",否则什么也不会发生。

如果虚拟发送按钮是指键盘的 return 按钮,则需要在 textFieldShouldReturn 委托方法中执行以下操作:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    if let text = textField.text {
        if text == "Specified text" {
            label.text = "Correct"
        }
        textField.text = ""
    }
    textField.resignFirstResponder() // this is optional, you might wanna hide keyboard or not
    return true
}