当用户点击 Swift 中的 UITextView 时,您如何 运行 一段代码?

How do you run a section of code when the user taps the UITextView in Swift?

所以我在里面有一个 UITextView 和一些占位符文本。当用户点击视图内部时,我想执行一些代码,即清除占位符文本。我试图创建一个 IBAction 但它不允许我这样做。我在网上查了一下,发现 this UITextViewDelegate Protocol Reference 但我不知道如何使用它。我发现很多与代表一起工作的例子是 Objective-C,我在 Swift.

工作

很抱歉这个简单的问题我是新手。

谢谢!

View Controller 应该遵循 UITextViewDelegate。然后确保实现 textViewDidBeginEditing 委托方法。当用户开始编辑文本视图时,下面的代码应该清除默认的占位符文本。

import UIKit

class ViewController: UIViewController, UITextViewDelegate {

    @IBOutlet weak var textView: UITextView!


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

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func textViewDidBeginEditing(textView: UITextView) {
        self.textView.text = ""
    }

}

给定文本视图 someTextView 的 IBOutlet,您需要做的就是使您的 class 符合 UITextViewDelegate,将文本视图的委托设置为自身,并实现textViewDidBeginEditing方法:

class ViewController: UIViewController, UITextViewDelegate {

    @IBOutlet weak var someTextView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()

        someTextView.delegate = self
    }

    func textViewDidBeginEditing(textView: UITextView) {
        println("Some code")
    }
}