我现在正在限制uitextfield长度,如下所示:
NSString* newText = [textView.text stringByReplacingCharactersInRange:range withString:text];
CGSize tallerSize = CGSizeMake(textView.frame.size.width-15,textView.frame.size.height*2);
CGSize newSize = [newText sizeWithFont:textView.font constrainedToSize:tallerSize lineBreakMode:
UILineBreakModeWordWrap];
[textView setSelectedRange:range];
if ( newSize.height > 325 )
{
return NO;
}
else if( newSize.height == 325 && [text isEqualToString:@"\n"] )
{
return NO;
}
else
return YES;
工作正常。但在我的应用程序中,用户可以更改文本大小。如果用户键入10px大小的字体和类型为总长度,然后将其字体大小更改为30,则uitextview会隐藏文本。
如何解决此问题?谢谢你的帮助。
答案 0 :(得分:0)
1)实施UITextFieldDelegate协议
2)实施textField:shouldChangeCharactersInRange:replacementString:
方法。
在每个字符点击或前一个字符替换时调用该方法。在这种方法中,你可以这样做:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([textField.text length] > MAXLENGTH) {
textField.text = [textField.text substringToIndex:MAXLENGTH-1];
return NO;
}
return YES;
}