假设我想创建自己的 TextView ,并限制最大字符数。我想在下面的级别中执行该约束 - 在 TextView 中。
我想创建CustomTextView : UITextView
其中 customTextView.delegate
将是同一个对象 - customTextView
(self.delegate = self
)。该类的定义为 CustomTextView : UITextView <UITextVIewDelegate>
我会实现 – textView:shouldChangeTextInRange:replacementText:
执行约束逻辑。
但不知怎的,这不起作用。我能否得到解释为什么或可能出现什么问题以及如何实现我的意图?
最佳答案
如果您要子类化 UITextView,为什么需要将其自身设置为委托(delegate)?委托(delegate)仅用于通知 UITextView 外部的代码 UITextView 中发生了某些变化。这意味着 UITextView 首先会收到自身更改的通知,并且使用委托(delegate),您可以通知外部代码(UIViewController 等)所发生的情况。如果您要子类化 UITextView,它应该从操作系统接收这些更改通知。
但是,浏览文档,我看不到如何仅通过子类跟踪内置事件。这是我通过 Google 搜索找到的一篇文章:Subclassing a UITextView
关于objective-c - 后代作为 parent 的代表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7284677/