如何在附加到 UITextField 的 UIPickerView 上设置 selectRow
How can I set selectRow on a UIPickerView that is attached to a UITextField
我有一个 UITextField,我附加了一个 UIPickerView。
我的 UIPickerView 有元素
var teeUsed = ["Yellow","Blue","Red","Green"]
我在 UITextField 中的当前设置是红色
当我输入 UITextField 时,我的微调器弹出并且黄色作为第一选择。我希望 RED 成为第一选择。如果我旋转一切正常,如果我只是单击另一个字段,它不会变为黄色。
我已经尝试过确实开始编辑、触及、触发主要操作,但是一切都在填充选择器之前完成,所以如果我尝试选择行会崩溃
enum AvailableColors: Int {
case yellow = 0
case blue = 1
case red = 2
case green = 3
var colorByIndex: UIColor {
switch (self) {
case .yellow:
return .yellow
case .blue:
return .blue
case .red:
return .red
case .green:
return .green
}
}
}
class ViewController: UIViewController, UIPickerViewDelegate {
var picker : UIPickerView?
var selectedIndex = 0
override func viewDidLoad() {
super.viewDidLoad()
//1.init your picker with data.
// self.picker = UIPickerView()...
// self.picker.delegate = self
//2.select predefined index
self.picker?.selectRow(self.selectedIndex, inComponent: 0, animated: false)
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
self.selectedIndex = row
self.textField.backgroundColor = AvailableColors(rawValue: row)?.colorByIndex
}
}
我有一个 UITextField,我附加了一个 UIPickerView。
我的 UIPickerView 有元素
var teeUsed = ["Yellow","Blue","Red","Green"]
我在 UITextField 中的当前设置是红色
当我输入 UITextField 时,我的微调器弹出并且黄色作为第一选择。我希望 RED 成为第一选择。如果我旋转一切正常,如果我只是单击另一个字段,它不会变为黄色。
我已经尝试过确实开始编辑、触及、触发主要操作,但是一切都在填充选择器之前完成,所以如果我尝试选择行会崩溃
enum AvailableColors: Int {
case yellow = 0
case blue = 1
case red = 2
case green = 3
var colorByIndex: UIColor {
switch (self) {
case .yellow:
return .yellow
case .blue:
return .blue
case .red:
return .red
case .green:
return .green
}
}
}
class ViewController: UIViewController, UIPickerViewDelegate {
var picker : UIPickerView?
var selectedIndex = 0
override func viewDidLoad() {
super.viewDidLoad()
//1.init your picker with data.
// self.picker = UIPickerView()...
// self.picker.delegate = self
//2.select predefined index
self.picker?.selectRow(self.selectedIndex, inComponent: 0, animated: false)
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
self.selectedIndex = row
self.textField.backgroundColor = AvailableColors(rawValue: row)?.colorByIndex
}
}