Я делаю пользовательский метод ввода для iPad, я хочу, чтобы иметь возможность заменить системную клавиатуру на мой метод ввода и ввести текст с помощью этого метода ввода.UITextView inputView
В соответствии с документацией все, что мне нужно сделать, это установить свойство inputView с моим представлением, и оно будет использоваться вместо системной клавиатуры. Я сделал это, и он работает, пока показывает клавиатуру, но как я действительно ввожу текст в текстовое представление?
Предположительно текстовое представление должно принять UIKeyInput, и я могу использовать методы протокола для ввода текста, но на самом деле UITextView не принимает этот протокол. conformsToProtocol:@protocol(UIKeyInput)
возвращает NO и «deleteBackwards» не реализован (insertText и hasText реализованы. Кроме того, «insertText» не вызывает метод делегирования textViewDidChange:
. Очевидно, мне нужно отправить метод UIKeyInput
на какой-либо другой объект (редактор поля?), но как я могу его получить?
есть идеи?
Спасибо. Эти решения хороши, но я хотел бы, чтобы текстовое представление действительно выполняло редактирование (и вел себя нормально, в комплекте с автокоррекцией и т. Д.), А не редактировало сам текст. –
Я назвал DTS об этом, и кажется, что ваше решение действительно единственный вариант. Их ответ заключался в том, что UIKeyInput (и UITextInput) не для клиента (то есть вы не должны когда-либо вызывать эти методы самостоятельно), а только для представлений, которые хотят получать ввод с клавиатуры. –