Swift代码在第二个文本字段输入时使第二个文本字段清晰

时间:2017-07-15 16:20:40

标签: ios swift

我正在教我自己快一个半星期。我正在尝试制作一个从英寸到厘米的转换器。我有两个文本区域,一个是英寸,一个是厘米。在你点击计算中键入其中一个时,它会为你提供英寸或厘米的转换。我遇到的问题是,如果你填写一个,然后你决定你宁愿看到另一个度量单位,数字仍然输入,按钮不起作用。如果用户决定使用其他字段,我该如何清除文本字段?

也不知道我上传的代码是否可行,但我宁愿一起摆脱转换按钮,所以当用户在单位或其他上键入时,它会立即填写下面的标签。这有可能吗?

这是迄今为止的代码。

import UIKit

class ViewController: UIViewController, UITextViewDelegate{

    @IBOutlet weak var InchesField: UITextField!
    @IBOutlet weak var CentimetersField: UITextField!
    @IBOutlet weak var ConversionLabel: UILabel!

    //Only let 1 decimal point
    let numberFormatter: NumberFormatter = {
        let nf = NumberFormatter()
        nf.numberStyle = .decimal
        nf.minimumFractionDigits = 0
        nf.maximumFractionDigits = 1
        return nf
    }()

   @IBAction func ConversionButton1(_ sender: AnyObject) {

    if InchesField.text == "" || CentimetersField.text == "" {
        //either inchfield or centimetersfield text is empty
        ConversionLabel.text = String("Please enter a number")
    }

    if let text = InchesField.text, !text.isEmpty
        {
            //do something if it's not empty
            let inch = Double(InchesField.text!)
            let inCmConvertor = inch! * 2.54

            ConversionLabel.text = String("\(inCmConvertor) Centimters")
    } else
    if let text = CentimetersField.text, !text.isEmpty
    {
            let centimeter = Double(CentimetersField.text!)
            let cmInConvertor = centimeter! / 2.54

        ConversionLabel.text = String("\(cmInConvertor) Inches")
    }

    }
}

Heres a screenshot

1 个答案:

答案 0 :(得分:2)

您要做的是在IBAction创建窗口中使用编辑更改事件为每个文本字段创建一个IBAction。

我测试了下面的代码并且有效:

@IBOutlet weak var InchesField: UITextField!
@IBOutlet weak var CentimetersField: UITextField!

@IBAction func InchesFieldChanged(_ sender: Any) {
 CentimetersField.text = ""
}

@IBAction func CentimetersFieldChanged(_ sender: Any) {
    InchesField.text = ""
}

不要复制并粘贴代码,只需手动创建IBActions,它就会简单得多。

祝你顺利进入Swift编程和iOS开发。