簡體   English   中英

在Swift 4中使用UIPickerView時如何隱藏鍵盤?

[英]How to hide keyboard while using UIPickerView with Swift 4?

我的代碼有問題,因為我使用的是UIPickerView,但是當我們從一個文本字段切換到另一個文本字段時,盡管下面的代碼沒有隱藏鍵盤。

我很高興有人可以幫助我。

(我已經對此錯誤進行了研究,但是我所看到的代碼都沒有解決我的問題)

@IBOutlet weak var colorPickerView: UIPickerView!

public func numberOfComponents(in pickerView: UIPickerView) -> Int{
    return 1
}

public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
    return list.count
}


func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    self.view.endEditing(true)
    return list[row]
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    self.colorTxtField.text! = self.list[row]
    self.colorPickerView.isHidden = true
}


func textFieldDidBeginEditing(_ textField: UITextField) {
    if textField == self.colorTxtField {
        self.colorPickerView.isHidden = false
        textField.endEditing(true)

    }
}

我很高興有人可以幫助我。

我認為您顯示的PickerView錯誤。 你不用寫

func textFieldDidBeginEditing(_ textField:UITextField)

而是顯示選擇器,只需在viewDidLoad編寫此行

self.colorTxtField.inputView = self.colorPickerView

一段時間遇到了同樣的問題,但是運氣並不好。但是我從@D得到了一些解決方法。 上面的Mika(謝謝!)評論是要實現textFieldShouldBeginEditing

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    self.view.endEditing(true)
    //or:
    self.view.resignFirstResponder()
    return true
}

該解決方案之所以有用,是因為它隱藏了停留在前一個文本字段之外的鍵盤,但是它無法立即啟用下一個點擊的字段編輯-因此,事實上的用戶必須輕按兩次。 這樣更好,然后沒有

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM