UITextField文本更改事件

我如何检测textField中的任何文本更改? delegate方法shouldChangeCharactersInRange适用于某些东西,但它并没有完全满足我的需要。 自从它返回YES以来,textField文本对其他观察者方法不可用。

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

他们有什么办法可以获得像textChanged Java事件处理程序这样的东西。

- (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.
[textField addTarget:self 
              action:@selector(textFieldDidChange:) 
    forControlEvents:UIControlEventEditingChanged];

然后在textFieldDidChange:方法中,您可以检查textField的内容,并根据需要重新加载您的表视图。

你可以使用它并将calculateAndUpdateTextFields作为selector


XenElement的答案是现货。

上述操作也可以在界面生成器中完成,方法是右键单击UITextField并将“编辑已更改”发送事件拖到您的子类单元中。

UITextField更改事件


设置事件监听器:

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

真正听:

- (void)textFieldDidChange:(UITextField *)textField {
    NSLog(@"text changed: %@", textField.text);
}
链接地址: http://www.djcxy.com/p/28169.html

上一篇: UITextField text change event

下一篇: GCD and KVO problems