Ho ricevuto un TextView
che dovrebbe essere visualizzato premendo un pulsante e consente all'utente di inserire il testo tramite la tastiera.Risoluzione dei problemi becomeFirstResponder non mostra la tastiera per alcuni utenti
- (IBAction) changeName {
changeNameBtn.hidden = YES;
backBtn.hidden = YES;
usernameLabel.hidden = NO;
inputTextField.hidden = NO;
[inputTextField becomeFirstResponder]; // to show keyboard
}
Questo funziona bene per la maggior parte di noi.
Ma la tastiera non viene visualizzata per alcuni dei miei tester, in una posizione geograficamente remota. Come complicare lo scatto? E quale potrebbe essere la ragione del diverso comportamento dei nostri dispositivi? Funziona bene per me e per tutti gli altri. Tutti usiamo gli stessi dispositivi (iPod, iOS 4.1 - 5.1).
prima cosa che ho provato non ha funzionato:
Pensai che l'inputTextField ha fatto in qualche modo non diventano visibili in tempo, prima che becomeFirstResponder
è stato licenziato, così ho aggiunto setNeedsDisplay
come ho pensato che sarebbe forzare un aggiornamento .
[inputTextField setNeedsDisplay];
[inputTextField becomeFirstResponder];
Seconda cosa che ho provato non ha funzionato:
if([inputTextField canBecomeFirstResponder]){
[inputTextField becomeFirstResponder];
}
Terzo cosa che ho provato è una soluzione, che richiede l'utente sfortunato di premere il campo:
- (IBAction) inputTextFieldTouch {
[inputTextField becomeFirstResponder];
}
Questa soluzione alternativa funziona, ma deve esserci un modo migliore. Per favore, spiegami cosa sto facendo male! :) E come affrontare problemi come questo senza essere in grado di duplicarli da solo?
funziona in realtà meglio della risposta, che è contrassegnata corretta. –
meglio, come, Ilya? – JOG