Ho bisogno di utilizzare due caratteri diversi nella visualizzazione testo, quindi imposto il testo attribuito in textViewDidChange. Ma per la tastiera giapponese il carattere di input viene inserito ripetutamente.UITextView attributeText con tastiera giapponese ripete l'input
Funziona per la tastiera inglese. Funziona anche con la tastiera giapponese quando si utilizza il testo normale invece di attributeText.
Il mio codice:
- (void)viewDidLoad {
[super viewDidLoad];
UITextView *textView = [[UITextView alloc] initWithFrame:self.view.frame];
textView.delegate = self;
[self.view addSubview:textView];
}
- (void)textViewDidChange:(UITextView *)textView
{
NSLog(@"TOTAL: %@", textView.text);
textView.attributedText = [[NSMutableAttributedString alloc] initWithString: textView.text];
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSLog(@"ADDED: %@", text);
return YES;
}
uscita:
2015-07-15 13:51:10.156 japKeyTest[32163:5765000] ADDED: a
2015-07-15 13:51:10.167 japKeyTest[32163:5765000] TOTAL: あ
2015-07-15 13:51:11.376 japKeyTest[32163:5765000] ADDED: a
2015-07-15 13:51:11.378 japKeyTest[32163:5765000] TOTAL: あああ
2015-07-15 13:51:12.054 japKeyTest[32163:5765000] ADDED: a
2015-07-15 13:51:12.055 japKeyTest[32163:5765000] TOTAL: ああああああ
atteso:
2015-07-15 13:51:10.156 japKeyTest[32163:5765000] ADDED: a
2015-07-15 13:51:10.167 japKeyTest[32163:5765000] TOTAL: あ
2015-07-15 13:51:11.376 japKeyTest[32163:5765000] ADDED: a
2015-07-15 13:51:11.378 japKeyTest[32163:5765000] TOTAL: ああ
2015-07-15 13:51:12.054 japKeyTest[32163:5765000] ADDED: a
2015-07-15 13:51:12.055 japKeyTest[32163:5765000] TOTAL: あああ
Qualsiasi idea di come inserire il testo attribuito con tastiera giapponese e ottenere risultato normale? (Senza caratteri extra)
È sorprendente la coincidenza: ho appena iniziato un nuovo lavoro e questo è uno dei primi bug che sto cercando di risolvere. Non posso credere che questo non stia influenzando migliaia di app che supportano il giapponese! –
Inoltre: prova a digitare "mika" usando romaji e vedi se ottieni una "k" nel mezzo di caratteri extra! Sono sicuro che è lo stesso bug. –
Questo succede anche con una normale tastiera inglese. – villy393