Боюсь, вы не можете ограничить клавиатуру вводом только буквенных символов. Доступные типы клавиатуры перечислены в справочнике по протоколу UITextInputTraits, а еще более подробно в заголовочном файле:
typedef enum {
UIKeyboardTypeDefault, // Default type for the current input method.
UIKeyboardTypeASCIICapable, // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
UIKeyboardTypeNumbersAndPunctuation, // Numbers and assorted punctuation.
UIKeyboardTypeURL, // A type optimized for URL entry (shows . / .com prominently).
UIKeyboardTypeNumberPad, // A number pad (0-9). Suitable for PIN entry.
UIKeyboardTypePhonePad, // A phone pad (1-9, *, 0, #, with letters under the numbers).
UIKeyboardTypeNamePhonePad, // A type optimized for entering a person's name or phone number.
UIKeyboardTypeEmailAddress, // A type optimized for multiple email address entry (shows space @ . prominently).
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, // Deprecated
} UIKeyboardType;
Я чувствую, что то, чего вы хотите, отсутствует в SDK. Я бы отправил в Apple отчет об ошибке с запросом нового типа клавиатуры, подобного тому, который вы упомянули.
Какое решение для вас помимо подачи сообщения об ошибке и ожидания появления нового типа клавиатуры в SDK? Проверка ввода в текстовом поле. Это можно сделать, назначив свойство делегата UITextField и реализовав метод UITextFieldDelegate textField: shouldChangeCharactersInRange: replaceString: и вернув YES, только если строка замены не содержит чисел.
НТН