ios - 检测点击何时在 UITextView 之外

标签 ios swift uitextview

我正在开发一个程序,其中包含各种 UITextView。我遇到的问题是我无法检测到用户何时在 UITextView 之外点击,以便我可以隐藏键盘。我尝试了各种操作,但都不起作用。

我在操作中使用的代码:

@IBAction func touchOutsideTextField(sender: UITextField)
{
    sender.resignFirstResponder()
}

我应该怎么做才能隐藏键盘而不是这个?

最佳答案

为此,您可以使用 UITapGestureRecognizer

将 TapGesture 添加到 View 中,当点击 View 时键盘将隐藏。

这是为您准备的示例代码。

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var text: UITextView!
@IBOutlet weak var text2: UITextView!
@IBOutlet weak var text3: UITextView!
@IBOutlet weak var text4: UITextView!

override func viewDidLoad() {
    super.viewDidLoad()

    let aSelector : Selector = "touchOutsideTextField"
    let tapGesture = UITapGestureRecognizer(target: self, action: aSelector)
    tapGesture.numberOfTapsRequired = 1
    view.addGestureRecognizer(tapGesture)
}

func touchOutsideTextField(){

    self.view.endEditing(true)

    }

}

或者你可以使用 touchesBegan 方法来添加这段代码,如果你想尝试这种方式的话。

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {

    self.view.endEditing(true)
}

使用此代码,您无需添加 UITapGestureRecognizer

您可以选择此选项之一。

关于ios - 检测点击何时在 UITextView 之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28778153/

相关文章:

ios - SwiftUI中的.transition修饰符

iOS7/iphone 5s home键点击API

ios - 试图让后台获取工作

ios 如何快速更改不同 View Controller 中另一个 View Controller 的内容

ios - 让 UITextView 的键盘消失,同时保持返回功能

iphone - 如何在 UITextView 中启用平滑滚动?

ios - 触摸外部时如何更改按钮字体?

ios - 使用本地 url 通过 iOS 应用程序进行 ChromeCast 视频(错误)

ios - 快速处理选择器参数

objective-c - HTML 到 NSMutableAttributedString 在 ios 6 中不起作用