Esto parece imposible, pero tal vez alguien más ha tenido el mismo problema.Confirmar UITextview autocompletar
¿Es posible para mí aceptar una autocompletar programáticamente o de alguna manera obtener la palabra sugerida que aparece? Mi problema es que estoy capturando la tecla de retroceso/retroceso y luego muevo el foco a otra vista de texto. Cuando se pulsa enter/backspace, la vista de texto ignorará la palabra sugerida automáticamente. Parece que solo es posible aceptar un autocompletado por hit space/dot (y volver por una nueva fila). Con este código:
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text {
NSRange textViewRange = [textView selectedRange];
// Handle newrow and backspace.
if(([text length] == 0) && (textViewRange.location== 0) && textViewRange.length==0){
// BACKSPACE KEYSTROKE
[delegate doSomethingWhenBackspace];
return NO;
}else if ([text isEqualToString:@"\n"]){
// RETURN KEYSTROKE
[delegate doSomethingWhenReturn];
return NO;
}
return YES;
}
He intentado añadir programación "espacio" cuando la tecla de retorno es golpeado, sino que también ignora la palabra de auto-completado.
else if ([text isEqualToString:@"\n"]){
// Tryin to accept autocomplete with no result.
textview.text = [textview.text stringByAppendingString:@" "];
// RETURN KEYSTROKE
[delegate doSomethingWhenReturn];
return NO;
}
¿Alguna sugerencia?
Esta es una manera realmente terrible de lograr esto. Cambie las propiedades de 'firstResponder' de' UITextView'/'UITextField' en su lugar para que UIKit realice el trabajo de autocompletado por usted. – cbowns