Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 更改字体大小时在uitextview上隐藏的文本_Iphone_Iphone Sdk 3.0_Uitextview - Fatal编程技术网

Iphone 更改字体大小时在uitextview上隐藏的文本

Iphone 更改字体大小时在uitextview上隐藏的文本,iphone,iphone-sdk-3.0,uitextview,Iphone,Iphone Sdk 3.0,Uitextview,我现在限制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:t

我现在限制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将隐藏文本

我如何解决这个问题?谢谢您的帮助。

1)执行协议

2) 实现
textField:shouldChangeCharactersRange: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;
}
1) 实施协议

2) 实现
textField:shouldChangeCharactersRange: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;
}

为什么你要根据它呈现的像素数来限制字段的长度?@kevin:谢谢你的回答..你能告诉我我该如何限制文本字段的长度吗有人请帮我解决为什么你要根据它呈现的像素数来限制字段的长度吗?@kevin:谢谢你的回答你能告诉我怎样才能限制文本的长度吗有人请帮我