另一个文件中的 iOS UITextView 委托(delegate)

标签 ios swift uitextview uitextviewdelegate

下午好!

对不起我的英语。

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

  1. 我在 Storyboard中有一个 CommentsViewController 和一个 ViewController 与之相连。
  2. 我在 ViewController 上有一个 UITextView 元素(在 Storyboard中)和 CommentsViewController 的导出(称为 newCommentTextView)。
  3. 我创建了一个 CommentTextViewDelegate 类:NSObject、UITextViewDelegate。
  4. 我在 CommentsViewController 的 viewDidLoad 中完成了这个

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

我怎么了? 谢谢。

最佳答案

newCommentTextView.delegate = CommentTextViewDelegate() 有一个错误。调用 viewDidLoad() 后,CommentTextViewDelegate 的实例已经被释放。所以 CommentsViewController 应该拥有 CommentTextViewDelegate

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

关于另一个文件中的 iOS UITextView 委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38997355/

相关文章:

ios - 在iOS中的推送通知中振动取决于客户端或有效负载

c# - 在 Swift 和 C# 中检测 LAN 上的多个应用程序实例

ios - 不断根据新数据更新 map

ios - UILabelView 中的垂直间距来自哪里?

iphone - 在 UINavigationbar 中显示通知标记,如计数器

ios - UITextView不会从特定区域之外滚动

ios - 如何更改 iOS 自动更正建议的颜色?

ios - iOS 中的状态恢复

ios - 来自 iOS 应用程序的数据未保存到 Firebase 数据库

ios - 如何将单个 TableView 单元链接到另一个 ViewController