如何检测文本字段中的任何文本更改?委托方法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];
在斯威夫特:
textField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
然后在该textFieldDidChange方法中,您可以检查 textField 的内容,并根据需要重新加载表视图。
textFieldDidChange
您可以使用它并将 calculateAndUpdateTextFields 作为您的selector.
selector