⌥ + ⌦ ведет себя странно в пользовательской реализации UITextInput
Я работаю над кроссплатформенным приложением для создания заметок , и часть наших усилий включает в себя создание текстового редактора с нуля, который мы можем внедрить на наши различные платформы. Для нас в iOS это означает соответствиеUITextInput
протокол. Рендеринг нашего документа, курсора и т. д. происходит черезMTKView
который управляется нашим кодом Rust. Это прекрасно работает, и нам удалось реализовать это на нескольких платформах, последней из которых является iOS.
Вставка текста, автозамена, выбор — все работает как положено, однако при использовании аппаратной клавиатуры на iPad (или iPhone) я наблюдаю странное поведение, которое не могу понять или найти ответы в Интернете.
Когда я набираю option+backspace в конце предложения, вместо того, чтобы удалять слово за словом, система ввода сначала выделяет слово, а затем вызывает следующую клавишу Backspace.deleteBackwards()
.
Мой код доступен для изучения здесь .
А проект можно скачать здесь (чтобы избежать необходимости установки Rust Toolchain).
Я кратко экспериментировал с другими подходами (вы можете увидеть комментарии по отладке в моей ветке), напримерUIKeyCommand
или переопределениеpressesBegan
, Я открыт для дальнейшего изучения этих вопросов, но у меня такое ощущение, что я иду не в том направлении и что пришло время обратиться за помощью.
Я также внимательно изучил промежуточные вызовы, которые делает текстовая система, и мои ответы на них. Вы можете найти эти журналы здесь . Все мои звонки и ответы кажутся мне разумными. Есть еще некоторые нереализованные функции, но я знаю, что они не вызываются, потому что я поместилexit()
позвони им.