如何从UITextView中关闭返回键上的键盘

时间:2015-07-28 00:55:49

标签: xcode swift xcode6

如何通过按设备上的返回键来关闭键盘?我知道如何解除键盘,但不是在使用UITextView时:

resignFirstResponder

我试过这个,但它不起作用:

self.messageTextView.delegate = self

使用此功能:

func messageTextViewShouldReturn(textView: UITextView) -> Bool
    {
        self.messageTextView.resignFirstResponder()
        return true
    }

3 个答案:

答案 0 :(得分:3)

请记住将UITextDelegate添加到ViewDidLoad()

 func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
    if text == "\n"
    {
        textView.resignFirstResponder()
        return false
    }
    return true
}

答案 1 :(得分:1)

快速5

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    txtCity.resignFirstResponder()
    return true

您可能还希望视图控制器遵守UITextFieldDelegate协议,并指定视图控制器是文本字段的委托

class ViewController: UIViewController, UITextFieldDelegate {

override func viewDidLoad() {
    super.viewDidLoad()
    txtCity.delegate = self
}

答案 2 :(得分:1)

快捷键5

与可以使用IBAction的textField不同,没有可用于文本视图的操作。

创建您的textViewOutlet

如果使用表格视图: 确定textView行的位置:

let textViewIndex = IndexPath(row: 0, section: 1)

然后(_:didSelectRowAt :)中的textView以外的任何行都将关闭键盘

if indexPath != textViewIndex {
                   textViewOutlet.resignFirstResponder()
               }

如果不使用表视图:在SB视图控制器中,将UITapGestureRecognizer拖到视图中。然后通过控制将其拖动到您的视图,从该Tap Gesture Recognizer创建IBAction。在操作中,将键盘从textViewOutlet中撤消:

    @IBAction func tapGestureRecognizer(_ sender: Any) {
notesField.resignFirstResponder()
    }