iOS UITextView代表另一个文件

问题描述:

下午好!iOS UITextView代表另一个文件

打扰我的英语。

我有一个问题,试图将textView的委托分配给另一个类。

  1. 我有一个评论观察控制器和一个连接到它的故事板的ViewController。
  2. 我已经有ViewController(storyBoard)上的UITextView元素和CommentViewController(称为newCommentTextView)的出口。
  3. 我创建了一个类CommentTextViewDelegate:NSObject,UITextViewDelegate。
  4. 在CommentsViewController的viewDidLoad我做这个

    newCommentTextView.delegate = CommentTextViewDelegate() 
    
  5. 我已经添加和textViewDidChange,和textViewDidEndEditing和_:shouldChangeTextInRange:...。但是当我改变textView的文本时,这些函数都不会被调用!

我怎么了? 谢谢。

+0

为什么要在控制器中设置插座并将代表设置为另一个? –

+0

CommentsViewController和ViewController之间有什么关系? – Catoshi

+0

@TonyHan在storyBoard中,在viewController的身份检查器中,我将类分配给了CommentsViewController。 –

委托是一个弱指针。因此,您需要创建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 
}