/ / UITextView non visualizza il testo dopo la rimozione - iphone, ios, goal-c, uikit, uitextview

UITextView non visualizza testo dopo la rimozione - iphone, ios, obiettivo-c, uikit, uitextview

Ho un semplice controller di visualizzazione che visualizza un UITextView e un UILabel. I controlli vengono aggiunti sullo storyboard e collegati come outlet al codice del controller di visualizzazione corretto. Sono riempiti con testo sullo storyboard e funzionano correttamente, quando testati.

Ma poi ho provato a rimuovere i controlli da superview e quindi aggiungerli nuovamente come sottoview, quindi in pratica dovrei essere nello stesso stato di prima.

Il codice del controller di visualizzazione è di seguito.

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UITextView *textView;
@property (weak, nonatomic) IBOutlet UILabel *label;

@end

@implementation ViewController

- (void)viewWillAppear:(BOOL)animated
{
[self.textView removeFromSuperview];
[self.view addSubview:self.textView];

[self.label removeFromSuperview];
[self.view addSubview:self.label];
}

@end

Ma il risultato del seguente codice è quello UITextView (textView variabile) è non visualizzato, ma l'etichetta è. Se stampo il contenuto di self.view.subviews e self.textView dopo il codice in viewWillAppear viene eseguito, il UITextView è nella gerarchia e ha anche il frame corretto. Ma il testo non è affatto visibile.

Ho anche provato:

  • imposta nuovamente il testo nel codice
  • impostare lo sfondo di UITextView nel codice
  • chiamata setNeedsDisplay sopra UITextView

Niente arriva UITextView indietro, anche se esiste in memoria. La mia soluzione è ora assegnarne un'altra UITextView nel codice, ma è un'operazione molto più lenta.

Quindi, cosa c'è che non va qui? È un bug in UITextView? Perché questo codice funziona con UILabel e non con UITextView?

Grazie!

risposte:

0 per risposta № 1

Assicurarsi che la presa sia collegata. Il cerchio grigio a sinistra deve essere riempito come mostrato di seguito:

inserisci la descrizione dell'immagine qui

Puoi riconnetterlo trascinando il tasto Ctrl. Puoi anche confermarlo controllando se self.textView non è nulla.