显示MDTimePicker时键盘未被关闭

问题描述 投票:0回答:1

**enter image description here**

显示计时器选择器时出现问题。有两个文本字段:1.第一个打开数字键盘。 2.秒从物料控件中打开时间选择器。一旦我开始编辑第一个TF,并且如果我点击第二个TF,即使我点击“完成”按钮,数字键盘也不会消失。完成按钮是使用工具栏创建的,并且该方法包含“ view.endEditing”代码。它可以正常工作,但不能在上述条件下工作。

override func viewDidLoad() {
    super.viewDidLoad()
    repeatDateTextField.delegate = self
}

extension MyAvailabilityVC : UITextFieldDelegate{
    let toolbar = UIToolbar()
    toolbar.sizeToFit()

    //done button for toolbaar
    let done = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(donePressed))
    toolbar.setItems([done], animated: false)

    self.repeatDateTextField.inputAccessoryView = toolbar



@objc func donePressed(){
    self.view.endEditing(true)

}



func textFieldDidBeginEditing(_ textField: UITextField) {

    if textField == self.repeatDateTextField{
        let timePicker = MDDatePickerDialog()
        timePicker.delegate = self
        timePicker.tag = 300
        timePicker.minimumDate = Date()
        timePicker.show()
        self.view.endEditing(true)
    }
}
}
ios swift xcode cocoapods timepicker
1个回答
0
投票

在视图控制器中确认UITextFieldDelegate并将TF委托设置为self

class YourViewController: UIViewController, UITextFieldDelegate {

  @IBOutlet weak var your_tf: UITextField!
  override func viewDidLoad() {
        super.viewDidLoad()
        your_tf.delegate = self;

   }
   ....

  func textFieldShouldReturn(_ textField: UITextField) -> Bool {

        textField.resignFirstResponder()
        return true
    }

}

现在,当您按下键盘的完成/返回按钮时,键盘将关闭。如果您要取消创建的按钮,则可以从完成的@Action进行调用,以textFieldShouldReturn(your_tf)

© www.soinside.com 2019 - 2024. All rights reserved.