Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 快捷文本视图键盘_Swift_Uitextview - Fatal编程技术网

Swift 快捷文本视图键盘

Swift 快捷文本视图键盘,swift,uitextview,Swift,Uitextview,在swift中,我无法关闭文本视图的键盘 我可以用下面的命令取消一个文本字段 @IBAction func DismissKeyboard(sender: AnyObject) { self.resignFirstResponder() } 但我不确定如何使用文本视图,只需将UITextView添加为IBOutlet并使用相同的功能: @IBAction func DismissKeyboard(sender: AnyObject) { yo

在swift中,我无法关闭文本视图的键盘

我可以用下面的命令取消一个文本字段

    @IBAction func DismissKeyboard(sender: AnyObject) 
    {
         self.resignFirstResponder()
    }

但我不确定如何使用文本视图,只需将UITextView添加为IBOutlet并使用相同的功能:

@IBAction func DismissKeyboard(sender: AnyObject) {
    yourtextView.resignFirstResponder()
}

您必须将
textview.delegate
设置为self,并使用
shouldChangeTextInRange
功能在按回车键时退出

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

swift 3

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

这是一个更好、更直观(对用户而言)的解决方案,可以消除软键盘。“\n”解决方案的问题是用户无法在textView中插入换行符,因为在换行符出现之前,点击键盘上的返回/完成按钮将关闭键盘。下面的方法可以让您在教导用户只需点击外部文本输入字段是拒绝使用键盘的标准方式的同时保留该功能

// MARK: - dismiss keyboard when user taps outside of text boxes

override func viewDidLoad() {
    super.viewDidLoad()

    configureTapGesture()
}

private func configureTapGesture() {
    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(WriteJournalEntryViewController.handleTap))
    view.addGestureRecognizer(tapGesture)
}

@objc func handleTap() {
    view.endEditing(true)
}
(假设此代码位于名为“WriteJournalEntryViewController”的UIViewController自定义子类中)

view=UIViewController中的整个视图,因此它不仅仅适用于textView对象。
endEditing=UIView类的一种方法,您可以阅读它的文档。

非常感谢您在这方面努力寻找帮助,希望这也能帮助其他人:D