Добавляем кнопку для UIKeyboardTypeNumberPad
Многие разработчики сталкивались с тем, что если в iOS для iPhone выбрать у UITextField тип UIKeyboardTypeNumberPad, то слева внизу будет пустое место вместо кнопки.
У этого типа клавиатуры не работает свойство returnKeyType и её возможно убрать с экрана только повесив обработчик на касание в пустом месте (например UIView)
Осторожно трафик
Интернете можно найти массу примеров, как добавить свою кнопку на такую клавиатуру, но у меня возникла задача добавить кнопку скрытия на полупрозрачную клавиатуру (UIKeyboardAppearanceAlert), чтобы получился вот так вот вид:
Вначале я планировал описать как решил эту задачу, но допилив до универсального состояния понял, что описывать будет долго и путано. В итоге сделав всё как отдельный класс, опишу как запустить.
Первым делом скачиваем сам класс.
В архиве будут три файла и папка с демо проектом. Нам нужны только эти три файла:
AMTextFieldNumberPad.h
AMTextFieldNumberPad.m
AMTextFieldNumberPad.bundle (в нем хранятся необходимые изображения)
Подключаем их к проекту.
Потом в нужном контролере в хидере подключаем класс:
В Interface Builder добавляем UITextField и прописываем у него класс
И делаем связь между объектами
Вот, собственно, и всё.
Так же можно вызывать программно
Теперь расскажу о возможностях класса.
Класс поддерживает обычную и прозрачную клавиатуру
На кнопку можно добавить свой текст:
Если текст не указывать, тогда он подставится автоматически из returnKeyType:
Можно сделать кнопку с иконкой клавиатуры (как в iPad):
Или же указать любую свою:
Ну и поддержка горизонтальной ориентации:
Я, естественно, не претендую на идеальное решение, если кто знает лучшие способы — буду очень признателен.
Так же прикладываю ссылку на репозиторий