iOS 另一个文件中的 UITextView 委托

iOS UITextView delegate in another file

下午好!

对不起我的英语。

我在尝试将 textView 的委托分配给另一个 class 时遇到问题。

  1. 我在故事板中有一个 CommentsViewController 和一个 ViewController 与之相连。
  2. 我在 ViewController(在故事板中)上有一个 UITextView 元素和 CommentsViewController 的出口(称为 newCommentTextView)。
  3. 我创建了一个 class CommentTextViewDelegate:NSObject,UITextViewDelegate。
  4. 在评论ViewController的viewDidLoad中我做到了

    newCommentTextView.delegate = CommentTextViewDelegate()
    
  5. 我添加了 textViewDidChange、textViewDidEndEditing 和 _:shouldChangeTextInRange:...。但是当我更改 textView 的文本时,这些函数中的 none 被调用了!

我怎么了? 谢谢。

委托是一个弱指针。因此,您需要将 CommentTextViewDelegate class 设为 属性,然后按照以下代码将其分配给文本视图委托。在此之后,只要发生任何更改,您都会收到通知。

  let textViewDelegate = CommentTextViewDelegate()
  func viewDidLoad() {
  newCommentTextView.delegate = textViewDelegate
  }

newCommentTextView.delegate = CommentTextViewDelegate() 有一个 error.The CommentTextViewDelegate 实例已在 viewDidLoad() called.So 之后被释放 CommentsViewController 应该拥有 CommentTextViewDelegate.

let textViewDelegate = CommentTextViewDelegate()
func viewDidLoad() {
   newCommentTextView.delegate = textViewDelegate
}