如何检查UITextField何时更改?

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我试图检查文本字段何时发生更改,这与用于文本视图的函数相同-textViewDidChange到目前为止,我已经这样做了:

  func textFieldDidBeginEditing(textField: UITextField) {
        if self.status.text == "" && self.username.text == "" {
            self.topRightButton.enabled = false
        } else {   
            self.topRightButton.enabled = true
        }
    }

但是topRightButton一旦文本字段被按下,我希望它只在文本实际上被键入时才启用?

JAVA-包身工JAVA-包身工提问于
流浪的法师斗篷工程师回答于

SWIFT

textField.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)

然后你就可以调用你的函数了!

func textFieldDidChange(textField: UITextField) {
    //your code
}

SWIFT 2.2

textField.addTarget(self, action: #selector(YourViewController.textFieldDidChange(_:)), forControlEvents: UIControlEvents.EditingChanged)

func textFieldDidChange(textField: UITextField) {
    //your code
}

SWIFT 3

textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)

func textFieldDidChange(_ textField: UITextField) {

}

目标-C

[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

而textFieldDidChange方法是

-(void)textFieldDidChange :(UITextField *) textField{
    //your code
}
大力发达回答于

您可以在接口生成器中建立此连接。

  1. 在故事板中,单击屏幕顶部的辅助编辑器(中间有两个圆圈)。

  1. Ctrl+单击界面生成器中的Textfield。
  2. 从EditingChanged拖动到辅助视图中的视图控制器类中。

  1. 命名您的函数(例如“textDidChange”)并单击Connection。

扫码关注云+社区