无法将以编程方式创建的 UITextField 文本设置为 UIPickerView 值

Can't set programmatically created UITextField text to UIPickerView value

我以编程方式创建了一个 UITextField (myTextField : UITextField!),因此我可以轻松控制它的属性。

我希望能够将其文本设置为 UIPicker 的选定值(通过 myPickerView: UIPickerView! = UIPickerView() 以编程方式创建),但每当我在 didSelectRow 中尝试 myTextField.text = pickerData[row] 时,应用程序就会崩溃说在展开 Optional 时发现 nil。

我正在使用 myTextField.inputView = myPickerView,它的行为正常,我可以从选择器视图中成功打印出选定的行。只有当我尝试设置它崩溃的文本时。

当我在 Storyboard 上将按钮设置为 IBOutlet 时,它可以正常工作,但我想避免使用 Storyboard。有没有办法解决?或者是否可以通过编程方式设置故事板按钮的样式?

更新:我已经将标签设置为 myTextField 并使用选择器 didSelect 协议下的标签设置 myTextField.text,但这感觉很迂回和老套

我认为你在设置文本之前没有初始化文本字段。

您的文本字段为零。您需要在使用 pickerView 之前初始化 textField。最好的方法是

myTextField = UITextField()
myTextField.inputView = myPickerView

因此,pickerView 仅在您触摸 textField 时出现。如果你想让它默认打开,使用

myTextField.becomeFirstResponder()