首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >shouldChangeTextInRange在UITextViewDelegate是强制性的吗?

shouldChangeTextInRange在UITextViewDelegate是强制性的吗?
EN

Stack Overflow用户
提问于 2013-09-10 13:36:34
回答 3查看 545关注 0票数 0

我在我的UITextViewDelegate中实现了ViewController,

在将委托设置为TextView之后

代码语言:javascript
复制
self.addressTextView.delegate=self;

现在我只能将文本设置为,

代码语言:javascript
复制
[self.addressTextView setText:@"Tamil Nadu, India"];

我无法使用keybord编辑文本。在实现shouldChangeTextInRange方法之后,只有我能够编辑UITextView中的内容。

代码语言:javascript
复制
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    return YES;
}

我不知道为什么??是shouldChangeTextInRange强制,如果我们实现UITextViewDelegate

EN

回答 3

Stack Overflow用户

发布于 2013-09-10 13:40:33

不是的。这不是compulsary。你可以设置这样的文本

代码语言:javascript
复制
textView.text = @"Hello";

当您试图在文本视图中写入某些内容时,将调用此方法。

代码语言:javascript
复制
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
票数 0
EN

Stack Overflow用户

发布于 2013-09-10 13:41:04

它在协议定义中并不是强制性的,所以可能比其他事情发生的更多。通过阅读上面提到的实现委托方法,很有可能您的控制器的超类实现了该方法,并且只允许上面得到的文本。如果是这样的话,您已经实现的解决方案实际上是解决这个问题的最简单方法。

票数 0
EN

Stack Overflow用户

发布于 2013-09-10 13:44:48

对于您的信息,当声明类遵循协议时必须实现的所有内容都将由编译器指示:如果缺少方法或属性,则生成时会出现错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18720470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档