我有一个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不再可编辑。我在这里做错了什么?
感谢您的帮助。
答案 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];
}
}
希望它可以帮助某人......
麦克