如何检测textField中的任何文本更改?委托方法shouldChangeCharactersInRange是有作用的,但是它没有完全满足我的需要.因为在它返回yes之前,textField文本不能用于其他观察器方法.

e、 g.在我的代码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;
}

推荐答案

proper way to do uitextfield text change call back:

我捕获发送到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的内容,并根据需要重新加载表视图.

你可以用它把calculateAndUpdateTextFields作为你的selector.

Ios相关问答推荐

如何遮罩,动画和添加阴影到CAShapeLayer?

如何删除NavigationView中的默认透明标头?

Xcode 15模拟器用x86_64编译

在 Android 和 iOS 应用程序上下文中阻止后台线程有哪些缺点?

为什么在Actor内部使用withTaskGroupwork并行运行?

比较 `某个协议` 实例时出现编译错误

不可发送类型 '[String : Any]?'在调用非隔离实例方法 XXX 时退出主参与者隔离上下文不能跨越参与者边界

Flutter Aging Person 自定义小部件

在 Swift 中 @MainActor 似乎被 withCheckedContinuation 而不是其他异步调用继承是巧合吗?

占位符文本未显示在 TextEditor 上

iOS SwiftUI - 使用 PhotosPicker 从图库中 Select 图像或视频

更改图标会导致 SwiftUI 动画出现故障?

我正在try 制作一种 Select 器样式,例如设置中的外观 Select 器

SwiftUI Disclosure Group 文本对齐

Xcode 6 App Store 提交失败并显示您的帐户已经拥有有效的 iOS 分发证书

何时需要将应用程序源包含在测试目标中?

直接下载Xcode模拟器

UICollectionView flowLayout 没有正确包装单元格

使用 swift 3 在 UIView 上添加阴影

使用 xib 创建可重用的 UIView(并从情节提要中加载)