我在我的UITextViewDelegate中实现了ViewController,
在将委托设置为TextView之后
self.addressTextView.delegate=self;现在我只能将文本设置为,
[self.addressTextView setText:@"Tamil Nadu, India"];我无法使用keybord编辑文本。在实现shouldChangeTextInRange方法之后,只有我能够编辑UITextView中的内容。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
return YES;
}我不知道为什么??是shouldChangeTextInRange强制,如果我们实现UITextViewDelegate
发布于 2013-09-10 13:40:33
不是的。这不是compulsary。你可以设置这样的文本
textView.text = @"Hello";当您试图在文本视图中写入某些内容时,将调用此方法。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text发布于 2013-09-10 13:41:04
它在协议定义中并不是强制性的,所以可能比其他事情发生的更多。通过阅读上面提到的实现委托方法,很有可能您的控制器的超类实现了该方法,并且只允许上面得到的文本。如果是这样的话,您已经实现的解决方案实际上是解决这个问题的最简单方法。
发布于 2013-09-10 13:44:48
对于您的信息,当声明类遵循协议时必须实现的所有内容都将由编译器指示:如果缺少方法或属性,则生成时会出现错误。
https://stackoverflow.com/questions/18720470
复制相似问题