Введите вперед вопрос с 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

0 ответов

Другие вопросы по тегам