Введите вперед вопрос с UIKeyInput
У меня есть контроллер, который принимает пользовательский ввод ключа и отображает его уникальным способом. Становится ключевым ответчиком и реализует UIKeyInput
,
https://developer.apple.com/reference/uikit/uikeyinput
Это было реализовано в 8.0, до функциональности typeahead на клавиатуре iOS. Я обновляю его для 10.0, и он плохо управляет взаимодействием.
- (void)deleteBackward {
NSString *text = self.codedLabel.text;
if (text.length > 0) {
text = [text substringToIndex:text.length-1];
}
self.codedLabel.text = text;
self.decodeLabel.text = [text stringByReplacingOccurrencesOfString:@"\n" withString:@" | "];
[self saveText:text];
}
- (BOOL)hasText {
NSString *text = self.codedLabel.text;
return (text.length > 0);
}
- (void)insertText:(NSString *)newtext {
NSString *text = self.codedLabel.text;
text = [text stringByAppendingString:newtext];
self.codedLabel.text = text;
self.decodeLabel.text = [text stringByReplacingOccurrencesOfString:@"\n" withString:@" | "];
[self saveText:text];
}
Когда выбрано одно из следующих слов, insertText:
вызывается, но newtext
значение всегда 0xa000000000000201
и отладочный вывод
(lldb) po newtext
(lldb) p newtext.length
(NSUInteger) $1 = 1