【问题标题】:resignFirstResponder() didn't work for Date PickerresignFirstResponder() 不适用于日期选择器
【发布时间】:2020-05-07 09:47:32
【问题描述】:

我有一个用 Swift 5 编写的非常简单的CustomIDatePicker 类,它的顶部有一个工具栏,其中包含一个“完成”按钮。问题是,按下此按钮时键盘从未缩回。我已经尝试了 4 种不同的方法,请参阅下面的详细信息:

import UIKit

class CustomDatePicker: UIDatePicker {

    var zTextField: UITextField!

    let toolbar = UIToolbar()

    convenience init(textField: UITextField) {
        self.init()

        // bar buttons
        let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(donePressed(sender:)))

        toolbar.sizeToFit()
        toolbar.setItems([doneBtn], animated: true)

        self.datePickerMode = .date

        // link up the Text Field
        zTextField = textField
        zTextField.inputAccessoryView = toolbar
        zTextField.inputView = self
    }

    @objc func donePressed (sender: UIBarButtonItem) {
        print("done pressed") // this line appeared in the debugger

        //self.resignFirstResponder()
        //self.inputView?.resignFirstResponder()
        //self.endEditing(true)
        self.inputView?.endEditing(true) // tried all of these 4, but keyboard always remained in view
    }
}

一个非常简单的 ViewController 来测试这个类:

class ViewController: UIViewController {

    @IBOutlet weak var theTextField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        let datePicker = CustomDatePicker(textField: theTextField)
    }
}

任何帮助将不胜感激!

【问题讨论】:

    标签: ios swift resignfirstresponder


    【解决方案1】:

    实现 UITextField 委托函数

    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
      return false
    }
    @objc func donePressed (sender: UIBarButtonItem) {
            print("done pressed") 
    
            self.zTextField.resignFirstResponder() // new line
        }
    

    【讨论】:

      猜你喜欢
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      相关资源
      最近更新 更多