Por que o NSString sizeWithFont: retorna o tamanho errado?
Preciso calcular a altura de um UITextView de cima para baixo até o cursor. Estou aparando o texto que ele contém (portanto, ele só sobe para o cursor) e, em seguida, usando @ do NSStrisizeWithFont:constrainedToSize:lineBreakMode:
método para calcular a altura, assim:
NSRange range;
range.location = noteTextView.selectedRange.location;
range.length = noteTextView.text.length - range.location;
NSString *string = [noteTextView.text stringByReplacingCharactersInRange:range withString:@""];
CGSize size = [string sizeWithFont:noteTextView.font
constrainedToSize:noteTextView.frame.size
lineBreakMode:UILineBreakModeWordWrap];
NSLog(@"height is: %f \n", size.height);
Faz isso toda vez que digito qualquer cois
O problema é que, quando assisto o NSLog enquanto digito, ele não registra uma alteração de altura até digitar 4 caracteres na nova linha. É como se osizeWithFont
método @ tem exatamente quatro caracteres. Aqui estão algumas capturas de tela mostrando o que quero dizer:
Alguém pode me contar o que está acontecendo