UIkeyboard type - PullRequest
       14

UIkeyboard type

6 голосов
/ 13 июля 2009

Я хочу использовать только буквенную клавиатуру, как ее ограничить? Я использовал следующее утверждение, но оно не скрывает кнопку, которая преобразует клавиатуру в цифру

tempTextField.keyboardType = UIKeyboardTypeAlphabet;    

Ответы [ 2 ]

10 голосов
/ 13 июля 2009

Боюсь, вы не можете ограничить клавиатуру вводом только буквенных символов. Доступные типы клавиатуры перечислены в справочнике по протоколу 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, только если строка замены не содержит чисел.

НТН

4 голосов
/ 13 марта 2013

обновленные типы клавиатуры

   typedef NS_ENUM(NSInteger, UIKeyboardType) {
        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).
    #if __IPHONE_4_1 <= __IPHONE_OS_VERSION_MAX_ALLOWED
        UIKeyboardTypeDecimalPad,             // A number pad with a decimal point.
    #endif
    #if __IPHONE_5_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
        UIKeyboardTypeTwitter,                // A type optimized for twitter text entry (easy access to @ #)
    #endif

        UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, // Deprecated

    };
...