【问题标题】:Text getting hidden on uitextview when changing font size更改字体大小时,文本在 uitextview 上被隐藏
【发布时间】:2011-05-21 08:58:24
【问题描述】:

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

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

【问题讨论】:

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

标签: iphone iphone-sdk-3.0 uitextview


【解决方案1】:

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-04
    • 2011-09-24
    • 2021-08-25
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    相关资源
    最近更新 更多