检测 UITextView 何时被编辑

Detect when a UITextView has been edited

文本编辑器

我在做什么

文本视图

我正在尝试创建一个 UITextView,它是 IOS 上的代码编辑器,并且我正在尝试使不同类型的代码具有不同的颜色,因此一切都不仅仅是一种颜色(例如评论会是灰色)。

问题

我遇到的问题是我是这样链接文本视图的:

@IBOutlet weak var textView: UITextView!

我需要检测 textView 何时更改,您知道有什么方法可以做到这一点吗?

为此,您需要遵守UITextViewDelegate协议,然后将textView的委托设置为self。

因此,在这个视图控制器的开头 UIViewController 之后,您需要添加协议一致性。范例

class MyViewController: UIViewController, UITextViewDelegate {

然后在viewDidLoad()中设置委托:

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

现在,您已为成功做好准备。 UITextViewDelegate 上的所有委托方法都是可选的,因此您只需实现您想要的那些。在这种情况下,您要实现的是 func textViewDidChange(_ textView: UITextView)

每次文本字段中的文本更新时都会触发该方法。

从故事板中的 UITextView 创建 Editing Changed @IBAction 到 viewController。