Como desativar completamente a rolagem do UITextView?
Estou desenvolvendo um aplicativo simples de edição de texto para iPad usando o UITextView. Eu sempre tive alguns problemas com o UIScrollView e o UITextView. Eu acho que esperava muita coisa desses dois.
Quando defino myTextView.text como outra instância de NSString, a rolagem ocorre automaticamente. Eu poderia impedir essa rolagem definindo
myTextView.scrollEnabled = NO;
myTextView.text = newText;
myTextView.scrollEnabled = YES;
No entanto, se eu alterasse a propriedade selectedRange de myTextView, ocorreria rolagem.
Especificamente, se o intervalo de SelectedRange acontecesse no texto na tela atual, a rolagem não ocorria.
Por exemplo, se eu selecionar todo o texto tocando na propriedade "Selecionar tudo", a rolagem não ocorrerá. Mas se eu selecionar todo o texto, definindo selectedRange como NSMakeRange (0, [myTextView.text length]), em seguida, rolando para END (a última posição do cursor) ocorreu.
Para resolver os problemas, 1) salvei o deslocamento do conteúdo original do myTextView.
CGPoint originalOffset = myTextView.contentOffset;
// change myTextView.selectedRange here
myTextView.selectedRange = originalOffset
Mas nada aconteceu.
2) Liguei para os códigos acima após alguns segundos usando o NSTimer, e a rolagem retornou corretamente à posição original (deslocamento). No entanto, a rolagem para o final ocorreu primeiro e depois para o topo.
Existe uma maneira de impedir completamente a rolagem do UITextView por um momento?