inputAccessoryView UITextView не отображается, если подсказки текста отключены в настройках клавиатуры на устройстве.

Я разрабатываю приложение для чата, в котором текстовое представление размещается в Viewcontroller так же, как в Whatsapp. TextView перемещается вверх вместе с клавиатурой точно так же, как WhatsApp.

Мне нужно показать панель инструментов, содержащую несколько кнопок, между клавиатурой и текстовым представлением. Это делается путем создания панели инструментов и ее назначения для INPUTACCESSORYVIEW UITEXTVIEW. Он отлично работает, если пользователь не изменит настройки устройства следующим образом.

Настройки —> Общие —> Клавиатура —> Интеллектуальный ввод (отключено).

После изменения настроек клавиатуры, как указано выше. Вместо inputAccessoryView появляется пустое место.

Я не мог найти ничего похожего на эту проблему.

Любая помощь будет высоко оценена.


person Arslan Saleem    schedule 22.05.2017    source источник


Ответы (1)


Часто при разработке приложения мы сталкивались с проблемами, когда клавиатура iPhone сдвигалась вверх и закрывала UITextField/UITextView. IQKeyboardManager позволяет предотвратить проблемы со скольжением клавиатуры и закрыть UITextField/UITextView без ввода какого-либо кода и дополнительной настройки. Чтобы использовать IQKeyboardManager, вам просто нужно добавить исходные файлы в ваш проект.

Поэтому я рекомендую вам использовать IQKeyboardManager.

person Ved Rauniyar    schedule 22.05.2017
comment
Спасибо Вед за ваше предложение. Я добавил это в свой проект, но не повезло. - person Arslan Saleem; 22.05.2017
comment
Невозможно. Пожалуйста, убедитесь, что вы правильно его реализовали, @ArslanSaleem - person Ved Rauniyar; 22.05.2017
comment
Я разрабатываю приложение в Objective-C. Я добавил модуль в свой проект и установил его в соответствии с инструкциями, приведенными в ссылке. - person Arslan Saleem; 22.05.2017
comment
После установки модуля я запустил свой код, но проблема осталась прежней. Затем я добавил следующую строку кода в didFinishLaunch appDelegate. [IQKeyboardManager sharedManager].enable = YES;. Но все же проблема есть. - person Arslan Saleem; 22.05.2017
comment
Для Objective-C просто перетащите каталог IQKeyboardManager из демо-проекта в ваш проект. Вот и все. - person Ved Rauniyar; 22.05.2017
comment
Я удалил модуль IQKeyboardManager. Затем загрузил демонстрационный проект и перекинул каталог IQKeyboard в свой проект. Затем я запустил свой код. Но результаты такие же. Я использую много сторонних разработчиков в своем коде. Возможно, он конфликтует с какой-то третьей стороной. - person Arslan Saleem; 22.05.2017
comment
@ArslanSaleem, не могли бы вы быть уверены, что ограничение верхнего макета или ограничение нижнего макета прямо или косвенно не влияет на положение текстового поля? Потому что это особый случай, и у нас есть другие обходные пути для этого. - person Mohd Iftekhar Qurashi; 02.06.2017
comment
@MohdIftekharQurashi, проблема с моим кодом была сторонней, которую я использовал для добавления форматированного текста в textView. Эта третья сторона по-разному меняла положение аксессуара для разных размеров экрана. Удаление этих строк кода от этой третьей стороны решило мою проблему. Тем не менее я обнаружил, что ответ Веда полезен при решении проблем с аксессуарами. - person Arslan Saleem; 05.06.2017