Pull to refresh

Добавляем кнопку для UIKeyboardTypeNumberPad

Reading time1 min
Views1.6K
Многие разработчики сталкивались с тем, что если в iOS для iPhone выбрать у UITextField тип UIKeyboardTypeNumberPad, то слева внизу будет пустое место вместо кнопки.

У этого типа клавиатуры не работает свойство returnKeyType и её возможно убрать с экрана только повесив обработчик на касание в пустом месте (например UIView)

Осторожно трафик

Интернете можно найти массу примеров, как добавить свою кнопку на такую клавиатуру, но у меня возникла задача добавить кнопку скрытия на полупрозрачную клавиатуру (UIKeyboardAppearanceAlert), чтобы получился вот так вот вид:



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

Первым делом скачиваем сам класс.

В архиве будут три файла и папка с демо проектом. Нам нужны только эти три файла:
AMTextFieldNumberPad.h
AMTextFieldNumberPad.m
AMTextFieldNumberPad.bundle (в нем хранятся необходимые изображения)

Подключаем их к проекту.

Потом в нужном контролере в хидере подключаем класс:


В Interface Builder добавляем UITextField и прописываем у него класс


И делаем связь между объектами


Вот, собственно, и всё.

Так же можно вызывать программно


Теперь расскажу о возможностях класса.
Класс поддерживает обычную и прозрачную клавиатуру

На кнопку можно добавить свой текст:


Если текст не указывать, тогда он подставится автоматически из returnKeyType:


Можно сделать кнопку с иконкой клавиатуры (как в iPad):


Или же указать любую свою:


Ну и поддержка горизонтальной ориентации:


Я, естественно, не претендую на идеальное решение, если кто знает лучшие способы — буду очень признателен.

Так же прикладываю ссылку на репозиторий
Tags:
Hubs:
Total votes 31: ↑29 and ↓2+27
Comments28

Articles