2017-07-15 53 views
1

我正在教我自己,快一个星期半左右。我正在试图制造一个从英寸到厘米的转换器。我有两个文本框,一个用英寸打一个,一个用厘米打。当您在其中键入其中一个时,您可以点击计算,它会为您提供英寸或厘米的转换。我遇到的问题是,如果你填写一个,然后你决定宁愿看到另一个度量单位,那么这些数字仍然是输入的,而且按钮不起作用。如果用户决定使用其他字段,我如何清除文本字段?在第二个字段中输入时使第二个文本字段清晰的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

你想要做的是与编辑每个文本字段在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开发。

+0

好的,非常感谢您的快速回复!我从故事板到控制器的药物,并做出如上所述的动作func,但是当我完成时,我得到错误 无法指定'string'类型的值来键入'UITextField!'。 –

+0

没关系我错过了那个我的错误的文字部分 –

+0

现在如果我想要拿走角色呢。如果有人不小心碰到一个角色,它会使程序崩溃。我知道这与NSRange或者沿着这些线的东西有关 –

相关问题