Перемещение текстовых полей для клавиатуры с TPKeyboardAvoidingScrollView не работает - PullRequest
4 голосов
/ 22 марта 2012

У меня есть приложение TabBar с одной из его вкладок, встроенных в NavigationController. Этот конкретный вид представляет собой форму с текстовыми полями на нем. Я хочу, чтобы TPKeyboardAvoidingScrollView переместил UITextFields вверх, когда клавиатура перемещается в представление. Я следовал инструкциям на странице Github, но он просто не работает вообще.

Это то, что я сделал согласно инструкциям:

  1. Добавлены TPKeyboardAvoidingScrollView.h и .m в мой проект
  2. Добавлен UIScrollView к представлению на раскадровке (Xcode 4.3.1)
  3. Выбрал ScrollView и в инспекторе изменил его класс на TPKeyboardAvoidingScrollView
  4. Переместил все мои текстовые поля в UIScrollView

Это не сработало ... Итак, глядя на пример кода, я попытался добавить еще несколько вещей:

  1. В моем представлении контроллеров .h файл, который я добавил:

    @ class TPKeyboardAvoidingScrollView;

  2. и связал ScrollView, что привело к добавлению этой строки кода:

    @ свойство (слабое, неатомное) IBOutlet TPKeyboardAvoidingScrollView * scrollView;

  3. Импортировал TPKeyboardAvoidingScrollView.h в мой файл .m контроллеров.

Но все же вставной код, который все остальные хвалят, просто не работает для меня.

Кто-нибудь может указать на мою некомпетентность, пожалуйста? Заранее благодарим за любую помощь, которую вы можете оказать ...

Ответы [ 2 ]

6 голосов
/ 03 июля 2012

Я столкнулся с этой проблемой, когда пытался использовать этот класс, и потратил много времени, потратив на то, что, как предполагается, экономит время.

Я установил точки останова внутри TPKeyboardAvoidingScrollView и заметил, что ни одна из них никогда не была поражена. Попробовав несколько вещей, я заметил вывод в окне отладки:
“Unknown class TPKeyboardAvoidingScrollView in Interface Builder file” error at runtime

Я нашел некоторую полезную информацию в этой теме . По сути, казалось, что файл оптимизирован, потому что он никогда не использовался в коде.

Чтобы заставить его работать снова, я сделал пару вещей, любые или все из которых могут быть необходимы:

  1. Нажмите на классы TPKeyboardAvoidingScrollView в схеме проекта. Откройте панель «Служебные программы» с правой стороны в XCode, если она скрыта, и убедитесь, что файлы действительно имеют некоторое целевое членство или они не будут созданы.
  2. Удалите приложение с устройства или симулятора, на котором вы тестируете, чтобы получить новую загрузку.
  3. Перестройте проект и загрузите на устройство / симулятор. Ошибка должна исчезнуть, вы должны быть в состоянии достичь точки останова в классах TPKeyboardAvoidingScrollView, и теперь все должно работать.

В качестве альтернативы вы можете рассмотреть решение , предоставленное здесь jhoule . Суть в том, что вы добавляете вызов:
[TPKeyboardAvoidingScrollView class];
вашему делегату приложения или в другом месте вашего кода, чтобы гарантировать, что на код ссылаются и не оптимизируют.

Надеюсь, это поможет.

0 голосов
/ 10 августа 2015

что вам нужно сделать, это перейти на главную раскадровку и добавить недостающие ограничения в представлении прокрутки, или вы можете щелкнуть представление прокрутки на раскадровке и перейти в редактор в верхней части меню xcode и перейти к решению проблем с автопоставкой и нажмите «Сброс», чтобы перейти к предложенным ограничениям. Запустите проект. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...