iOS UITextView代表另一个文件
问题描述:
打扰我的英语。
我有一个问题,试图将textView的委托分配给另一个类。
- 我有一个评论观察控制器和一个连接到它的故事板的ViewController。
- 我已经有ViewController(storyBoard)上的UITextView元素和CommentViewController(称为newCommentTextView)的出口。
- 我创建了一个类CommentTextViewDelegate:NSObject,UITextViewDelegate。
-
在CommentsViewController的viewDidLoad我做这个
newCommentTextView.delegate = CommentTextViewDelegate()
我已经添加和textViewDidChange,和textViewDidEndEditing和_:shouldChangeTextInRange:...。但是当我改变textView的文本时,这些函数都不会被调用!
我怎么了? 谢谢。
答
委托是一个弱指针。因此,您需要创建CommentTextViewDelegate类的属性,然后根据以下代码将其分配给文本视图委托。在此之后,只要发生任何更改,您都会收到通知。
let textViewDelegate = CommentTextViewDelegate()
func viewDidLoad() {
newCommentTextView.delegate = textViewDelegate
}
答
newCommentTextView.delegate = CommentTextViewDelegate()
已CommentTextViewDelegate的和error.The实例已经viewDidLoad中后释放()是called.So CommentsViewController应该拥有的CommentTextViewDelegate
。
let textViewDelegate = CommentTextViewDelegate()
func viewDidLoad() {
newCommentTextView.delegate = textViewDelegate
}
为什么要在控制器中设置插座并将代表设置为另一个? –
CommentsViewController和ViewController之间有什么关系? – Catoshi
@TonyHan在storyBoard中,在viewController的身份检查器中,我将类分配给了CommentsViewController。 –