Show UIPickerView text field is selected, then hide after selected

前端 未结 4 872
梦毁少年i
梦毁少年i 2020-12-02 15:11

I am trying to create a text box that when it is selected a UIPickerView opens up with choices to select from. Once selected, the UIPickerView hides and the selected item is

4条回答
  •  隐瞒了意图╮
    2020-12-02 15:35

    Swift 4 version

    override func viewDidLoad() {
        super.viewDidLoad()
    
        pickerView.dataSource = self
        pickerView.delegate = self
    
        textField.delegate = self
        textField.inputView = pickerView
    }
    

    And the extensions

    // MARK: - UIPickerViewDelegate
    
    extension ViewController: UITextFieldDelegate {
    
        func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
            pickerView.isHidden = false
            return false
        }
    }
    
    // MARK: - UIPickerViewDelegate
    
    extension ViewController: UIPickerViewDelegate, UIPickerViewDataSource {
    
        func numberOfComponents(in pickerView: UIPickerView) -> Int {
            return 1
        }
    
        func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
            return myItems.count
        }
    
        func pickerView( _ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
            return myItems[row].name
        }
    
        func pickerView( _ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
            textField.text = myItems[row].name
            pickerView.isHidden = true
        }
    }
    

提交回复
热议问题