Начиная с iOS 3.2 для этого есть свойство, называемое inputView.
просто так: [myTextField setInputView: myInputView] - где myInputView, очевидно, является вашим пользовательским представлением ввода. Затем система отобразит ваш вид вместо предопределенных клавиатур.