小编典典

UITextField 文本更改事件

all

如何检测文本字段中的任何文本更改?委托方法shouldChangeCharactersInRange适用于某些东西,但它并不能完全满足我的需要。因为在它返回
YES 之前,其他观察者方法无法使用 textField 文本。

例如,在我的代码calculateAndUpdateTextFields中没有得到更新的文本,用户输入了。

他们有什么方法可以获取textChangedJava 事件处理程序之类的东西。

- (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;
}

阅读 76

收藏
2022-03-06

共1个答案

小编典典

正确的方式进行 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 的内容,并根据需要重新加载表视图。

您可以使用它并将 calculateAndUpdateTextFields 作为您的selector.

2022-03-06