Swift 2.0 和 Xcode-beta 7.0 – 使用 UITextField 进行数字输入

Swift 2.0 and Xcode-beta 7.0 – Using UITextField for numeric input

完全沮丧的菜鸟在这里。当然这并不像看起来那么难?

我想使用用户输入的数字,进行计算,并将结果发送回屏幕。

我有代码可以使用代码强制输入的字符串,将其转换为双精度数,进行数学运算并将结果发送到屏幕。例如:

 @IBAction func buttonPressed() {
  NSLog("Button Pressed")

  let decimalAsString = "123.45"
  let decimalAsDouble = NSNumberFormatter().numberFromString(decimalAsString as String)!.doubleValue
   TempLabel.text = "\(decimalAsDouble+2.45)"
}

这只是将 2.45 添加到字符串“123.45”并将结果 125.9 作为字符串发送回我的标签以供显示,所有这些都是在按下按钮时完成的。伟大的。这种更简单的形式也适用:

        let decimalAsDouble = Double(decimalAsString)

我一直在努力解决的问题是使用输入到 UITextField 中的数字。

我的 UITextField 使用小数点输入,当出现错误时,我总是在那里输入数字。 (还是我?屏幕上显示的数字是真的 "entered" 吗?嗯……)

无论我尝试什么,我都找不到在按下按钮时既能编译又不会在执行时崩溃的代码。我得到的错误通常是关于展开一个可选的 nil 的抱怨。

如果有帮助,我可以详细说明一些不起作用的东西。

好的,我终于解决了自己的问题。我的问题是关闭输入字段并关闭数字输入板。一旦我这样做了,输入的值就可用了。

视图控制器中的关键代码是:

func textFieldShouldReturn(textField: UITextField!) -> Bool {   //delegate method
    textField.resignFirstResponder()
    return true
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?){
    view.endEditing(true)
    super.touchesBegan(touches, withEvent: event)
}

这会在用户单击视图中除字段本身或按钮以外的任何地方时关闭输入板。查找输入值的编程不会崩溃。