Sto creando un'app iOS 8 con Xcode 6.0.1 per il mio iPhone 5 (su cui è installato iOS 8.0.2). Voglio fare in modo che quando un utente fa clic sul mio UITextView
, tutto il testo venga selezionato in modo che possa facilmente iniziare a digitare e cancellare quello che c'era (ma non voglio che il testo venga automaticamente cancellato perché l'utente potrebbe voler tenerlo o aggiungerlo ad esso). Per fare questo, ho il seguente codice:UITextView selectTutto il metodo non funziona come previsto
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView hasText]) {
NSLog(@"selectedRange before: %d", textView.selectedRange.length);
[textView selectAll:self];
NSLog(@"selectedRange after: %d", textView.selectedRange.length);
}
}
Quando questo metodo viene chiamato, l'uscita della console è quello che mi aspetto (cioè la lunghezza selectedRange
è lo stesso il numero di caratteri nel testo 's la textView
) . Tuttavia, nulla viene visualizzato come selezionato nello UITextView
e non agisce selezionato (ad esempio non viene visualizzato alcun menu di selezione).
Ho visto più domande come questa su Internet, ma nessuna delle soluzioni fornite ha funzionato per me (e alcune di esse l'hanno scritta come un bug senza fornire alcuna soluzione). La modifica dell'id mittente su un valore diverso da self
(ad esempio nil
) non ha aiutato e non ha nemmeno aiutato a chiamare [textView select:self]
come suggerito da una persona. Ho anche provato questo codice:
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView hasText]) {
UITextRange *range = [textView textRangeFromPosition:textView.beginningOfDocument toPosition:textView.endOfDocument];
[textView setSelectedTextRange:range];
}
}
Ma, ha lo stesso problema.
Qualche suggerimento?
Comportamento strano. Come puoi vedere in questo video http://m.youtube.com/watch?v=iPXsVvva97E dovrebbe funzionare come questo – TMob
Esattamente. Ho visto anche quel video e non riesco a capire cosa sto facendo male. –
Ho lo stesso problema, hai trovato qualche correzione? –