如何在点击 UITextField 时停止显示键盘?

How to Stop Keyboard From Showing When UITextField is Tapped?

//Xcode 8.3.3 | Swift3

免责声明:好的,SO 上有一些问答可以回答这个问题。然而,经过广泛的谷歌搜索,我无法在 Swift 中找到任何最新的(它们都在 Objective C 中并且可以追溯到 2010 年,等等)。

我有一个项目,我需要用户能够点击 UITextField 并出现闪烁的行,但我已经有一个用 UIButtons 实现的数字键盘。这意味着我不希望在按下文本字段时出现默认键盘或任何键盘。

目前最简单的方法是什么?

你可以这样做 -

YourTextView.inputView = UIView()
YourTextView.inputAccessoryView = UIView() 

这不会打开键盘但允许光标闪烁。

尝试这样做:

extension YourController: UITextFieldDelegate {

    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
        // do some things

        NotificationCenter.default.addObserver(self, selector: #selector(keyboardHidden), 
        name: NSNotification.Name.UIKeyboardWillShow, object: nil)
        return false
    }

    @objc private func keyboardHidden() {
        // disabled keyboard 
        yourTextField.resignFirstResponder()
    }
}

@paulvs 链接的答案翻译成 Swift 3 将是:

let tempView = UIView(frame: .zero)
yourTextField.inputView = tempView