【问题标题】:My InputAccessoryView didn't disappear on Keyboard我的 InputAccessoryView 没有在键盘上消失
【发布时间】: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


    【解决方案1】:

    如果您在实际的 iOS 设备上进行测试,一切都应该没问题。您所描述的是模拟器的默认行为。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多