To wydaje się niemożliwe, ale być może ktoś inny miał taki sam problem.Potwierdź automatyczne wyświetlenie UITextview
Czy mogę automatycznie zaakceptować autouzupełnianie lub w jakiś sposób uzyskać sugerowane słowo, które się pojawi? Mój problem polega na tym, że przechwytuję klawisz powrotu/backspace, a następnie przełączam fokus na inny widok tekstowy. Po naciśnięciu enter/backspace, widok tekstowy zignoruje automatycznie sugerowane słowo. Wydaje się, że możliwe jest tylko zaakceptowanie autouzupełniania za pomocą spacji/kropki (i powrotu dla nowego wiersza). Z tym kodem:
- (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;
}
Próbowałem programowo dodać "spację" po naciśnięciu klawisza powrotu, ale to również ignoruje automatycznie uzupełniane słowo.
else if ([text isEqualToString:@"\n"]){
// Tryin to accept autocomplete with no result.
textview.text = [textview.text stringByAppendingString:@" "];
// RETURN KEYSTROKE
[delegate doSomethingWhenReturn];
return NO;
}
Wszelkie sugestie?
To naprawdę straszny sposób, aby to osiągnąć. Zmień właściwości 'firstITsponder'' UITextView'/'UITextField', aby UIKit działał automatycznie. – cbowns