在选择时关闭作为 UITextField 输入视图的 UIPickerView

Posted

技术标签:

【中文标题】在选择时关闭作为 UITextField 输入视图的 UIPickerView【英文标题】:Close UIPickerView that is an UITextField inputview on selection 【发布时间】:2021-02-03 11:25:07 【问题描述】:

我正在尝试在进行选择时关闭我的 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
    

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

【问题讨论】:

试试这个 textfieldElement.resignFirstResponder() @RajaKishan 是的,就是这样! 【参考方案1】:

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

添加这个

textfieldElement.resignFirstResponder()

或者你也可以使用

self.view.endEditing(true)

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

【讨论】:

以上是关于在选择时关闭作为 UITextField 输入视图的 UIPickerView的主要内容,如果未能解决你的问题,请参考以下文章

键盘可见时,将输入附件视图添加到UITextField

切换 uitextfield 的输入视图

UIPicker 作为 UITextfield 键盘的输入

使用UITextField + UIPickerview时禁用键盘输入

解雇 UIKeyboard 在 Objective-C 中不起作用

使用 UITextField + UIPickerview 时禁用键盘输入