Arrêter UITextView de saut d'obstacles lors de la mise en texte par programmation

- Je mettre à jour une petite quantité de texte dans un défilement UITextView. Je vais seulement l'insertion d'un caractère où le curseur est actuellement, et je vais faire cela sur une simple pression de bouton sur ma barre de navigation.

Mon problème est que lorsque j'appelle la méthode setText de l'affichage de texte, il saute à bas du texte. J'ai essayé d'utiliser contentOffset et la réinitialisation de la selectedRange mais il ne fonctionne pas! Voici mon exemple:

//Remember offset and selection
CGPoint contentOffset = [entryTextView contentOffset];
NSRange selectedRange = [entryTextView selectedRange];
//Update text
entryTextView.text = entryTextView.text;
//Try and reset offset and selection
[entryTextView setContentOffset:contentOffset animated:NO];
[entryTextView setSelectedRange: selectedRange];

Est-il de toute façon vous pouvez mettre à jour le texte, sans aucun mouvement de défilement du tout... comme si on avait tapé juste quelque chose sur le clavier?

Edit:

J'ai essayé d'utiliser le textViewDidChange: délégué méthode, mais c'est pas encore fait défiler jusqu'à l'emplacement d'origine.

- (void)textViewDidChange:(UITextView *)textView {
    if (self.programChanged) {
        [textView setSelectedRange:self.selectedRange];
        [textView setContentOffset:self.contentOffset animated:NO];
        self.programChanged = NO;
    }
}

- (void)changeButtonPressed:(id)sender {
    //Remember position
    self.programChanged = YES;
    self.contentOffset = [entryTextView contentOffset];
    self.selectedRange = [entryTextView selectedRange];
    //Update text
    entryTextView.text = entryTextView.text;
}