如何检测textField中的任何文本更改?委托方法shouldChangeCharactersInRange适用于某些东西,但不能完全满足我的需要。因为直到返回YES,否则textField文本不可用于其他观察者方法。
shouldChangeCharactersInRange
例如在我的代码calculateAndUpdateTextFields中没有得到更新的文本,用户已经输入了。
calculateAndUpdateTextFields
他们获得textChangedJava事件处理程序之类的方法是什么。
textChanged
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (textField.tag == kTextFieldTagSubtotal || textField.tag == kTextFieldTagSubtotalDecimal || textField.tag == kTextFieldTagShipping || textField.tag == kTextFieldTagShippingDecimal) { [self calculateAndUpdateTextFields]; } return YES; }
从正确的方式做uitextfield文本更改回调:
我捕获了发送到UITextField控件的字符,如下所示:
// Add a "textFieldDidChange" notification method to the text field control.
在Objective-C中:
[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
在Swift中:
textField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
然后,在该textFieldDidChange方法中,您可以检查textField的内容,并根据需要重新加载表格视图。
textFieldDidChange
您可以使用它,并将 calculateAndUpdateTextFields 用作您的selector。
selector