当用户在 Swift 中点击 UITextView 时,如何运行一段代码?
Posted
技术标签:
【中文标题】当用户在 Swift 中点击 UITextView 时,如何运行一段代码?【英文标题】:How do you run a section of code when the user taps the UITextView in Swift? 【发布时间】:2015-04-06 03:42:10 【问题描述】:所以我有一个UITextView
和一些占位符文本。当用户在视图内部点击时,我想执行一些代码,即清除占位符文本。我试图创建一个IBAction
,但它不会让我这样做。我在网上查了一下,找到了this UITextViewDelegate Protocol Reference,但我不知道怎么用。我发现很多使用委托的示例都是 Objective-C 并且我正在使用 Swift。
对于这个简单的问题,我很抱歉。
谢谢!
【问题讨论】:
【参考方案1】:给定一个文本视图someTextView
的IBOutlet,您需要做的就是使您的类符合UITextViewDelegate
,将该文本视图的委托设置为self,并实现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")
【讨论】:
【参考方案2】:视图控制器应该遵守 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 = ""
【讨论】:
以上是关于当用户在 Swift 中点击 UITextView 时,如何运行一段代码?的主要内容,如果未能解决你的问题,请参考以下文章
Swift:检测用户编辑的热点已在 UITextView 中停止
如何防止用户在 Swift 5 的 UITextView 中添加太多换行符?
将文本从 UITextView 保存到领域(Swift 5)时出现问题