无法将以编程方式创建的 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()
我以编程方式创建了一个 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()