问题描述
我试图在做出选择时关闭我的 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()
或者你也可以使用
self.view.endEditing(true)
注意:删除所有其他内容,例如退出其他视图或隐藏。