ios - UITextField 的值更改和编辑更改事件之间有什么区别

标签 ios uitextfield

我目前正在阅读一本关于 swift 设计模式的书,并且有一个程序可以在步进器的值更改或与其关联的文本字段更改时通知方法,这是方法

@IBAction func stockLevelDidChange(sender: AnyObject) {
    println("Method Trigged")
        if var currentCell = sender as? UIView {
            while (true) {
                currentCell = currentCell.superview!;
                if let cell = currentCell as? ProductTableViewCell {
                    if let id = cell.productID? {

                        var newStockLevel:Int?;

                        if let stepper = sender as? UIStepper {
                            newStockLevel = Int(stepper.value);
                        } else if let textfield = sender as? UITextField {
                            if let newValue = textfield.text.toInt()? {
                                newStockLevel = newValue;
                            }
                        }

                        if let level = newStockLevel {
                            products[id].4 = level;
                            cell.stockStepper.value = Double(level);
                            cell.stockField.text = String(level);
                        }
                    }
                    break;
                }
            }
            displayTotalStock();
        }
}

但是我在更改此代码线程时遇到了一些问题,首先当我只是剥离 while 外观时,它就是不起作用。

@IBAction func stockLevelDidChange(sender: AnyObject) {
    println("Method Trigged")
        if var currentCell = sender as? UIView {
                currentCell = currentCell.superview!;
                if let cell = currentCell as? ProductTableViewCell {
                    if let id = cell.productID? {

                        var newStockLevel:Int?;

                        if let stepper = sender as? UIStepper {
                            newStockLevel = Int(stepper.value);
                        } else if let textfield = sender as? UITextField {
                            if let newValue = textfield.text.toInt()? {
                                newStockLevel = newValue;
                            }
                        }

                        if let level = newStockLevel {
                            products[id].4 = level;
                            cell.stockStepper.value = Double(level);
                            cell.stockField.text = String(level);
                        }
                    }
                    break;
            }
            displayTotalStock();
        }
}

而且,当我将文本字段的事件从 editing changed 更改为 value changed 时,它也不起作用!!!

谁知道那里发生了什么,谢谢

最佳答案

编辑更改是文本字段状态。 Value Changed 是 textField 内容发生了变化。

如果你想做一些操作,你可以使用

这样的:

[textField addTarget:self action:@selector(textFieldAction:) forControlEvents:UIControlEventValueChanged];

您可以为您的目标更改控制事件。行动。 谢谢。

关于ios - UITextField 的值更改和编辑更改事件之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425368/

相关文章:

iphone - 带有插入图像选项的可扩展 UITextField

ios - 第二次单击 TextField 时打开 DatePicker

ios - 如果 TextField 为空,则设置自定义文本

iphone - 编写应用程序网络浏览器以访问 ip 地址

ios - 如何在评估 iOS 自动更新 iAP 时使用 ASN 本地收据中的字段?

iphone - 计算 imagepickerdidFinishPickingMediaWithInfo 中的视频大小(以字节为单位)

ios - SwiftUI:将动画附加到过渡

ios - AFNetworking 错误域代码=-999?但是工作正常吗?

ios - 从 UITextField 更改后如何更改 UIStepper 值?

iphone - 如何禁用 UITextField 或键盘的文本自动更正?