Я разработал пользовательское расширение клавиатуры, и я могу правильно ввести текст. Однако я не могу понять, когда включить капитализированную клавиатуру и нижний регистр. Это происходит главным образом потому, что следующие функции неправильно возвращают уже введенный текст до/после. Иногда они возвращают нуль, иногда только последние несколько символов и т.д. Много раз эти методы даже не вызываются вообще.
- (void)textWillChange:(id<UITextInput>)textInput
- (void)textDidChange:(id<UITextInput>)textInput
Я выяснил следующие сценарии, когда мне нужно включить мою прописную клавиатуру:
- Длина текста = 0 или ноль
- Когда вводится период, мне нужно добавить пробел и прописную клавиатуру
- Когда курсор помещается в место, где символ перед курсором является периодом или пробелом, а до этого является периодом.
- Когда пользователь выбрал весь текст "Выбрать все"
- Когда пользователь выбрал весь текст и удалил все
- Когда пользовательские обратные пространства и новый символ перед курсором являются периодом или пробелом и до этого периода.
- Когда пользователь вставляет текст, а символ перед курсором - это период или пробел, а до этого - период.
Также, если это возможно, возможно ли получить последнее введенное "цельное" слово, которое я могу использовать для поиска в словаре, например, для интеллектуального ввода?
Я прочитал документ Apple, в котором говорится, что пользователи ожидают автоматическую капитализацию, поэтому я уверен, что это должно быть возможно