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

时间:2016-03-18 20:24:26

标签: ios swift storyboard uitextfield uipickerview

我已经以编程方式(UITextField)创建了myTextField : UITextField!,因此我可以轻松控制其属性。

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

myTextField = UITextField()
myTextField.inputView = myPickerView

这样,只有当你触摸textField时才会出现pickerView。如果您希望默认打开它,请使用

myTextField.becomeFirstResponder()

答案 1 :(得分:-1)

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