关闭 UIPickerView,它是选择时的 UITextField 输入视图

问题描述

我试图在做出选择时关闭我的 UIPickerView:

    let pickerElement = UIPickerView()
    let textfieldElement = UITextField()

    textfieldElement.inputView = pickerElement
    pickerElement.delegate = self
    pickerElement.dataSource = self

    // ...
    func pickerView(_ pickerView: UIPickerView,didSelectRow row: Int,inComponent component: Int) {
        textfieldElement.text = options[row].label as? String
        selectedElementId = options[row].id
        // this is not doing anything
        pickerElement.resignFirstResponder()
        pickerView.resignFirstResponder()
        
        // leaves the grey view open
        pickerElement.isHidden = true
        pickerView.isHidden = true
    }

这似乎不起作用,它会在底部打开灰色视图:

enter image description here

解决方法

您需要退出文本字段而不是选择器或其他任何东西。

添加这个

textfieldElement.resignFirstResponder()

或者你也可以使用

self.view.endEditing(true)

注意:删除所有其他内容,例如退出其他视图或隐藏。