IPhone:如果文本超出UITextview的大小,如何防止插入文本

时间:2011-01-07 21:10:58

标签: iphone text uitextview limit

我有一个UITextView,其大小通过setFrame设置:CGRectMake(30,100,273,140)。

我想阻止插入超出TextView大小的文本。

所以我试过了:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ((textView.contentOffset.y + textView.frame.size.height) < textView.contentSize.height){
    return NO;
}
else {
    return YES;
}
return YES;
} 

pb是满足条件时,我不能使用退格键来删除额外的文本。 textview不再可编辑。我在这里做错了什么?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

你尝试过类似的东西吗?我写得很快,没有测试过。如果有效,请告诉我。我不知道关于字体的任何内容,所以你必须做一些阅读并相应地调整代码,其中说 whateveryourfontis

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    NSSTring *newString = [NSString stringWithFormat:@"%@%@", textView.text, text];
    CGSize *newSize = [newString sizeWithFont: [UIFont _whateveryourfontis_] constrainedToSize:textView.frame.size];
    return (newSize.height > textView.frame.size.height) ? NO : YES;
}

答案 1 :(得分:0)

好的,我想我这次已经自己找到了。

我不知道它是否是最佳解决方案,但它至少可以正常工作。

- (void)textViewDidChange:(UITextView *)uiViewContent{
if ((uiViewContent.contentOffset.y + uiViewContent.frame.size.height) < self.entryTextField2.contentSize.height){
self.entryTextField2.text=[self.entryTextField2.text substringToIndex:[self.entryTextField2.text length] - 1];
 }
}

希望它可以帮助某人......

麦克