Текст, скрываемый в uitextview при изменении размера шрифта - PullRequest
2 голосов
/ 07 декабря 2010

Я сейчас ограничиваю длину поля uitext, как показано ниже:

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 Ответ

0 голосов
/ 07 декабря 2010

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