Korzystając z poniższego kodu, wstawiam tekst z pliku plist do textView. TextView nie jest jeszcze firstresponder; tekst jest początkowo tylko do odczytu. W iOS4 kod goToEndOfNote ustawia kursor na końcu tekstu I przewija do tej pozycji. W 3.1.3 nie przewija się do końca, dopóki ekran nie zostanie dotknięty (co nie jest wymagane, chyba że wymagana jest zmiana lub dodanie), co powoduje, że textView jest pierwszym respondentem. Chciałbym, żeby działało w wersji 3.1.3, tak jak w wersji 4.0. Wszelkie pomysły proszę. Dzięki.Umieść kursor na końcu tekstu w uitextview i przejdź do pozycji
...
self.temp = [[[NSMutableArray alloc] initWithContentsOfFile:myPlistPath] autorelease];
self.textView.text = [self.temp objectAtIndex:0];
[self goToEndOfNote];
//[self performSelector:@selector(goToEndOfNote) withObject:nil afterDelay:0.1];
}
- (void) goToEndOfNote {
NSUInteger length = self.textView.text.length;
self.textView.selectedRange = NSMakeRange(length, 0);
}
Prawie, ale nie do końca. Widok tekstowy to większość ekranu. W wersji 4.0 linia add'l [textView setContentOffset: CGPointMake (0, długość) animowana: TAK]; powoduje, że ostatni znak przewija się do dołu textView (dobrze). W 3.1.3 powoduje, że ostatni znak jest przewijany do około połowy drogi na ekranie (ok), ale w obu wersjach systemu operacyjnego, jeśli na ekranie jest tylko 1 lub 2 linie, są one przewijane poza ekranem (nie tak dobry). Wolałbym przewijanie, aby zacząć dopiero po wyświetleniu ekranu (tak jak w wersji 4.0 z tylko dwoma oryginalnymi liniami w mojej metodzie). –