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

时间:2017-07-31 18:22:43

标签: ios swift xcode swift3 xcode8

// Xcode 8.3.3 |斯威夫特3

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

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

Storyboard viewcontroller

目前实现这一目标的最简单方法是什么?

3 个答案:

答案 0 :(得分:2)

你可以这样做 -

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

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

答案 1 :(得分:1)

尝试这样做:

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()
    }
}

答案 2 :(得分:1)

由@paulvs链接到Swift 3的答案是:

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