UITextView selectedRange nie wyświetla się po ustawieniu programowym

Moim problemem jest programowe ustawienie wybranego zakresu UITextViewwybiera tekst, alenie wizualnie zaznacz, że jest wybrany. Czy to brzmi jak błąd w OS 3.0 / 3.1. Co ważniejsze, wszelkie rozwiązania lub sugestie dotyczące wyświetlenia wyboru? (przykładowy projekt połączony u dołu wiadomości)

Skąd mam wiedzieć, że jest wybrany, ponieważ nie otrzymuję informacji wizualnej? Dwa powody:

Brak migającego kursoraDotknięcie dowolnego klawisza na klawiaturze powoduje usunięcie istniejącego tekstu z zakresu wyboru.

Mam UITextView w viewcontroller, który pozwala edytować wartość zmienioną przez użytkownika. Kontroler edytora jest otwierany po dwukrotnym dotknięciu w wierszu tabeli lub użytkownik naciska przycisk ujawniania szczegółów w wierszu. Viewcontroller dociera przez presentModalViewController, aw metodzie ViewWillAppear edytora VC inicjuję klawiaturę za pomocą[self.textView becomeFirstResponder];

Czasami chcę uruchomić edytor z całą zawartością wybranego widoku tekstowego, aby użytkownik mógł po prostu zacząć pisać, a to usunie istniejącą zawartość (to dlatego, że tworzę nowe elementy z domyślnymi tytułami, więc jest prawie pewne, że użytkownik najpierw usunie całą zawartość pola tekstowego edytora, a następnie wpisz ich tytuł).

Niektóre rzeczy, które już wypróbowałem:

ustawienie wybranego zakresu w viewDidAppear (zamiast i oprócz tego w textViewDidBeginEditing).Zastępując _textView.text kopią tekstu w nim zawartą, a następnie stosując selectedRange (w textViewDidBeginEditing) ... myśląc, że jeśli mam do czynienia z błędem framework, może się to obejść.[[_textView webView] selectAll]; (prywatny api). to samo zachowanie, tekst zostaje wybrany bez wizualnej informacji zwrotnej.wysyłanie _textView setNeedsDisplay i setNeedsLayout.używając performSelector ... afterDelay, aby ustawić selectedRange tak, aby stało się to po wyjściu z textViewDidBeginEditing.

refs na S.O .: Tutaj itutaj

// UITextFieldDelegate Methods...
- (void)textViewDidBeginEditing:(UITextView *)_textView
{
 NSInteger len = [_textView.text length];

 if( self.selectInitialText ){
  //NOTE: this is not working as expected. Indeed the text is 
  // selected but the highlighting of the text isn't showing.
  _textView.selectedRange = NSMakeRange(0,len);
 }
}

-- EDYTOWAĆ --
Oto przykładowy projekt przesłany do Apple BugReporter.Pobierz przykładowy projekt BugReport_7380723

Dodatkowe informacje:

Podczas tworzenia i zabawy z przykładowym zgłoszeniem projektu odkryłem dwie rzeczy:

Gdy zaznaczony jest tekst, ale nie wyświetla się podświetlenie, stuknij kilka klawiszy, a następnie „potrząśnij, aby cofnąć”, a oryginalny tekst zostanie przywróconyale jest podświetlony.

Jeśli ręcznie dokonasz wyboru w widoku tekstowym, a następnie dotkniesz przycisku „Wybierz wszystko” [odnosi się do przykładowego projektu połączonego powyżej], zaznaczony jest cały tekstI wyświetla prawidłowo podświetlenie.

questionAnswers(4)

yourAnswerToTheQuestion