swift - 如何在附加到 UITextField 的 UIPickerView 上设置 selectRow

标签 swift uipickerview

我有一个 UITextField,我已附加了一个 UIPickerView。

我的 UIPickerView 有元素

var teeUsed = ["Yellow","Blue","Red","Green"]

我当前在 UITextField 中的设置是红色

当我输入 UITextField 时,我的微调器会弹出,并以黄色为首选。我希望红色成为第一选择。如果我旋转一切正常,如果我只是单击另一个字段,它不会更改为黄色。

我尝试过“编辑确实开始”、“着陆”、“触发主要操作”,但一切都是在填充选择器之前完成的,因此如果我尝试选择行,则会崩溃

最佳答案

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
    }
}

关于swift - 如何在附加到 UITextField 的 UIPickerView 上设置 selectRow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56601796/

相关文章:

ios - 从 ViewController 向 View 传递数据时如何设置委托(delegate)?

ios - 在标签点击时显示 UIPickerView

ios - 显示 UIPickerView 时如何向上移动 View

iphone - 将 UIPickerView 添加到 UIActionSheet (底部按钮)

ios - 在 Tab Bar 前面制作 UIPickerView

ios - 如何使用具有多列的 UIpickerView 填充 TextField?

ios - 如何用内容填充分组的动态表格 View 单元格(swift)

swift - 如何在 Swift 中修补/模拟一个方法?

objective-c - 如何在命令行应用程序中创建安全的密码输入字段?

swift - 同时运行 2 个 Action ?游戏卡顿?