【发布时间】:2018-01-18 06:43:38
【问题描述】:
我制作工具栏来完成,或者数字键盘类型键盘的下一步按钮
但在模拟器上,如果我触摸文本字段,键盘不显示,只有 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()
}
}
}
【问题讨论】:
标签: ios keyboard inputaccessoryview