gpt4 book ai didi

ios - 显示 MDTimePicker 时键盘未关闭

转载 作者:行者123 更新时间:2023-12-01 19:35:08 25 4
gpt4 key购买 nike

**enter image description here**

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

override func viewDidLoad() {
super.viewDidLoad()
rateInPointsTextField.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.rateInPointsTextField.inputAccessoryView = toolbar



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

}



func textFieldDidBeginEditing(_ textField: UITextField) {

if textField == self.fromTimeTextField{

let timePicker = MDTimePickerDialog()
timePicker.delegate = self
timePicker.tag = 100
timePicker.clockMode = .mode12H
timePicker.show()
self.view.endEditing(true)
}
}

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

self.rateInPointsTextField.resignFirstResponder()
return true
}

}

最佳答案

确认UITextFieldDelegate在您的 View Controller 中并将 TF 委托(delegate)设置为 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
}

}

现在,当您按下键盘的完成/返回按钮时,键盘将关闭。如果您想从您创建的按钮中解散,请从 done @Action fun 调用 textFieldShouldReturn(your_tf)像这样。


...
@objc func donePressed(){
textFieldShouldReturn(your_tf)

}


关于ios - 显示 MDTimePicker 时键盘未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60450098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com