下午好!
对不起我的英语。
我在尝试将textView的委托分配给另一个类时遇到了问题。
在CommentsViewController的viewDidLoad中,我已经完成了这个
newCommentTextView.delegate = CommentTextViewDelegate()
我已经添加了textViewDidChange,textViewDidEndEditing和_:shouldChangeTextInRange:....但是,当我更改textView的文本时,这些函数都不会被调用!
我有什么问题? 谢谢。
答案 0 :(得分:2)
newCommentTextView.delegate = CommentTextViewDelegate()
有一个错误。在调用viewDidLoad()之后,CommentTextViewDelegate的实例已经被释放。所以CommentsViewController应该拥有CommentTextViewDelegate
。
let textViewDelegate = CommentTextViewDelegate()
func viewDidLoad() {
newCommentTextView.delegate = textViewDelegate
}
答案 1 :(得分:1)
委托是一个弱指针。因此,您需要使用CommentTextViewDelegate类的属性,然后根据下面的代码将其分配给文本视图委托。在此之后,只要发生任何变化,您就会收到通知。
let textViewDelegate = CommentTextViewDelegate()
func viewDidLoad() {
newCommentTextView.delegate = textViewDelegate
}