在Swift 4.2中无法更改输入值

时间:2018-11-16 13:54:55

标签: ios swift swift4.2 xcode10.1

我有一个输入UITextField,想更改他的值。

我这样定义UITextField

@IBOutlet weak var valueInput: UITextField!

比起viewDidLoad(),我得到了delegate-self

valueInput?.delegate = self

然后在viewDidLoad中,我尝试为输入赋值,如下所示:

if let priceIn = self.valueIn Input {
    valueIn.text! = strPr // (this is var and it has String format I've checked it, and I also try to make print(strPr) and I get a value)
}

不幸的是,该字符串不起作用:

valueIn.text! = strPr

但是如果我写这样的东西

valueIn.text! = "11"

这将起作用。

我也尝试过类似的操作,但是它也不起作用:

valueIn.text! = "\(strPr)"

有人有什么想法吗?

感谢您的回答,希望有人遇到同样的问题并知道如何解决。

1 个答案:

答案 0 :(得分:0)

这些行是错误的:

valueIn.text! = strPr
valueIn.text! = "11"

valueIn.text!仅应出现在右侧,以防万一您确定valueIn引用了有效的对象(不是nil)并且文本被声明为var text: String?

不确定确切地如何声明变量,但请尝试如下操作:

valueIn.text = "11"

或者,如果strPtr是可选的,请尝试以下操作:

if let strPr = strPr {
  valueIn.text = strPr
  print("New valueIn.text: \(valueIn.text!)")
}