ios - quitar - El teclado y el cursor se muestran, pero no puedo escribir dentro de UITextFields y UITextViews
texto predictivo literatura (7)
Aparentemente, esto es un error en iOS 6. Simplemente ponga [searchBar becomeFirstResponder];
en el método searchBarTextDidBeginEditing
:
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
if (!self.window.isKeyWindow) {
[self.window makeKeyAndVisible];
}
}
Esta solución funciona para mí.
En un iPad con iOS 6 GM. Tengo 6 UITextFields, 3 UITextViews y un UIButton que activa una ventana emergente / de acción.
Cuando selecciono uno de los campos UITextFields o UITextViews, aparece el teclado y aparece el cursor, pero no puedo ingresar texto. Si presiono la tecla UIButton para mostrar la ventana emergente y luego toco fuera de ella para descartarla y volver a los campos de campo o los cuadros de texto de la UIT, funcionan.
Tengo UITextxxxx.delegate = self; Establecer para todos ellos. "Enabled" y "User Interaction Enabled" marcados en los archivos xibs, UITextFieldDelegate y UITextViewDelegate en mi archivo .h, así como:
- (BOOL)disablesAutomaticKeyboardDismissal {
return NO;
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
return YES;
}
- (IBAction)textFieldReturn:(id)sender {
[sender resignFirstResponder];
}
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
if (textView == notestextView){
[notestextView becomeFirstResponder];
}
if (textView == notestextViewTwo){
[notestextViewTwo becomeFirstResponder];
}
if (textView == notestextViewThree){
[notestextViewThree becomeFirstResponder];
}
return YES;
}
- (BOOL)textViewShouldEndEditing:(UITextView *)textView {
return YES;
}
Incluso traté de [xxxxxxx BecomeFirstResponder]; en viewDidLoad. Aparece el teclado y coloca el cursor en el campo en el tiempo de ejecución, pero aún no puedo escribirlo hasta que toque el botón UIB para mostrar la ventana emergente.
¿Alguien sabe por qué no puedo escribir en los campos y por qué la ventana emergente "arregla"?
ACTUALIZACIÓN 9/18: introduje una nueva vista en mi aplicación que solo tiene una vista con un campo de texto y una vista de texto. Los delegados están todos configurados. Mismo comportamiento. Aparecen el teclado y el cursor, pero no se escribe. Eso descarta que el controlador popover se meta con las cosas.
Estoy empezando a pensar que este es un error de iOS 6. Esta es prácticamente la misma vista que tenía en la versión de iPhone de mi aplicación en iOS 4 y 5 y nunca tuve un problema. La única diferencia entre la versión de iPhone y iPad es la forma en que se presenta el selector de imagen. Tienes que usar un popover para el iPad. Por eso pensaba que el delegado de popover tenía algo que ver con eso.
¿Hay algún tipo de diferencia fundamental entre la implementación de UITextFields y UITextViews en iOS 6 que no conozco? Parece poco probable.
Si ayuda a que mi aplicación fluya así:
Vista principal con 10 botones.
- Cada botón empuja una vista de tabla a través de un controlador de navegación
- las vistas de tabla ofrecen una vista detallada: los campos de texto y las vistas de texto muestran el comportamiento descrito anteriormente
- tableview también tiene un botón de agregar que empuja una vista modal para agregar nuevos elementos: los campos de texto y las vistas de texto muestran el comportamiento descrito anteriormente
Estas soluciones no funcionaron para mí, pero después de eliminar la carpeta de datos derivados en ~/Library/Developer/Xcode/DerivedData/AppName
, funcionó.
Me encontré con este mismo problema, asegúrese de que el delegado de la aplicación tenga un [self.window makeKeyAndVisible]
. Eso me lo resolvió.
Originalmente, esta era una aplicación para iPhone basada en iOS 5. Para convertirla en una aplicación para iPad, simplemente .xibs
el proyecto y actualicé todos los .xibs
a las versiones de iPad. No sé si es un error o no, o si tiene algo que ver con la actualización a iOS 6, pero hacerlo así desordena algo con MainWindow.xib
.
En la xib de MainWindow, escribí "MainViewController"
para el título (anteriormente estaba en blanco).
Y marcó "Visible at Launch"
. A pesar de que ya es visible en el lanzamiento, al no tener que se compruebe esto se atornilla algo.
Ahora todas mis vistas de texto y campos de texto funcionan.
Para aclarar otras respuestas, no puede ingresar texto a una ventana que no está configurada para ser la ventana clave. La mayoría de las aplicaciones solo usan una ventana, o no tienen entrada de texto en ventanas adicionales, por lo que nunca se encontrará con este problema.
Cuando maneje múltiples ventanas, asegúrese de resignKeyWindow
a resignKeyWindow
+ makeKeyWindow
mientras cambia el enfoque y, muy importante, ¡a restaurar la ventana de la clave después!
Para mí tu solución no funciona, así que encontré otra.
Estoy usando Revmob Ads para que la vista de pantalla completa y la vista de banner se carguen cuando se inicie la aplicación. Revmob usa parte del personal para mostrar el mismo banner en todos los controladores de vista. Creo que aquí hay un problema. Cuando deshabilité revmob puedo agregar texto a mi campo de texto.
Prueba a utilizar BecomeFirstResponder en dispatch_async(dispatch_get_main_queue(),^{});