Багато розробників стикалися з тим, що якщо в iOS для iPhone вибрати у UITextField тип UIKeybo^ TypeNumberPad, то зліва внизу буде порожнє місце замість кнопки.
У цьому типі клавіатури не працює властивість returnKceType і її можливо прибрати з екрану тільки повісивши обробник на дотик у порожньому місці (наприклад UIView)
Обережно з трафіком
Інтернеті можна знайти масу прикладів, як додати свою кнопку на таку клавіатуру, але у мене виникло завдання додати кнопку приховування на напівпрозору клавіатуру (UIKeybo AppearanceAlert), щоб вийшов ось так ось вид:
Спочатку я планував описати як вирішив це завдання, але допилявши до універсального стану зрозумів, що описувати буде довго і плутано. У підсумку зробивши все як окремий клас, опишу як запустити.
Насамперед скачуємо сам клас.
У архіві будуть три файли і тека з демо проекту. Нам потрібні тільки ці три файли:
AMTextFieldNumberPad.h
AMTextFieldNumberPad.m
AMTextFieldNumberPad.bundle (у ньому зберігаються необхідні зображення)
Підключаємо їх до проекту.
Потім у потрібному контролері в хідері підключаємо клас:
У Interface Builder додаємо UITextField і прописуємо у нього клас
І робимо зв'язок між об'єктами
Ось, власне, і все.
Так само можна викликати програмно
Тепер розповім про можливості класу.
Клас підтримує звичайну і прозору клавіатуру
На кнопку можна додати свій текст:
Якщо текст не вказувати, тоді він підставиться автоматично з returnKceType:
Можна зробити кнопку з іконкою клавіатури (як в iPad):
Або ж вказати будь-яку свою:
Ну і підтримка горизонтальної орієнтації:
Я, природно, не претендую на ідеальне рішення, якщо хто знає кращі способи - буду дуже вдячний.
Так само прикладаю посилання на репозитарій