1. ホーム
  2. アイオス

[解決済み】UITextFieldが変更されたときに確認するにはどうすればよいですか?

2022-03-25 11:07:28

質問

テキストフィールドが変更されたときに、textView - に使用されている関数と同じようにチェックしようとしています。 textViewDidChange 今のところ、こんな感じです。

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

これは一応動作するのですが topRightButton は、テキストフィールドが押されるとすぐに有効になりますが、実際にテキストが入力されたときだけ有効にしたいのですが?

解決方法は?

SWIFT

Swift 4.2

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

そして

@objc func textFieldDidChange(_ textField: UITextField) {

}

SWIFT 3 & swift 4.1

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

そして

func textFieldDidChange(_ textField: UITextField) {

}

SWIFT 2.2

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

そして

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

OBJECTIVE-C

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

で、textFieldDidChangeメソッドは

-(void)textFieldDidChange :(UITextField *) textField{
    //your code
}