检测 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。
文本编辑器
我在做什么
文本视图
我正在尝试创建一个 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。