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

时间:2015-06-17 19:53:53

标签: xcode input uitextfield double

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

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

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

 @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使用小数点输入,并且在抛出错误时我总是输入一个数字。 (或者我?这些数字显示在屏幕上,但他们真的是#34;进入"嗯......)

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

如果有帮助的话,我可以详细介绍一下DON&#T; T的工作原理。

1 个答案:

答案 0 :(得分:0)

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

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

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)
}

当用户点击视图中的任何位置(字段本身或按钮除外)时,这会取消输入板。查找输入值的编程不会爆炸。