我制作完成后的工具栏,或编号键盘键盘的下一个按钮
但是在模拟器上,如果我触摸文本字段,键盘没有显示,只有inputAccessoryView显示。
cmd
+ k
键盘显示,但如果我再次点击cmd
+ k
只有键盘消失,工具栏没有消失
我的代码有什么问题
class ViewController: UIViewController {
@IBOutlet weak var phoneTextField: UITextField!
@IBOutlet weak var identifierTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
addButtonToTextField(textField: phoneTextField)
addButtonToTextField(textField: identifierTextField)
}
}
extension ViewController {
func addButtonToTextField(textField: UITextField){
let toolBar = UIToolbar()
toolBar.sizeToFit()
let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
if textField == phoneTextField {
let nextBtn = UIBarButtonItem(title: "Next", style: .done, target: self, action: #selector(doneBtnPressed))
toolBar.items = [flexibleSpace, nextBtn]
}else if textField == identifierTextField {
let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneBtnPressed))
toolBar.items = [flexibleSpace, doneBtn]
}
textField.inputAccessoryView = toolBar
}
@objc func doneBtnPressed(){
if phoneTextField.isFirstResponder{
identifierTextField.becomeFirstResponder()
}else if identifierTextField.isFirstResponder{
identifierTextField.resignFirstResponder()
}
}
}
答案 0 :(得分:0)
如果您在实际的iOS设备中测试它,一切都应该没问题。您所描述的是模拟器的默认行为。
希望它有所帮助。