Как скрыть цифровую кнопку на UIKeyboard? - PullRequest
0 голосов
/ 28 сентября 2011

Есть ли способ скрыть цифровую кнопку и пробел ?

enter image description here

Управление UIKeyboard прозрачность ??

Мне нужна клавиатура с только буквами, клавишей Backspace и кнопкой NEXT, больше ничего.
Мне нужна совместимость с iOS 3.1 +!

спасибо.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2011

На этой странице есть большое руководство по настройке клавиатуры . Похоже, вы можете использовать это, чтобы скрыть ненужные кнопки или изменить текущие кнопки.

Как правило, вы должны зарегистрироваться в качестве наблюдателя для UIKeyboardWillShowNotification:

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(keyboardWillShow:) 
                                             name:UIKeyboardWillShowNotification 
                                           object:nil];

и выполните настройку в обработчике уведомлений keyboardWillShow::

- (void)keyboardWillShow:(NSNotification *)notification { 
    // locate keyboard view
    UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
    UIView* keyboard;
    for(int i=0; i<[tempWindow.subviews count]; i++) {
        keyboard = [tempWindow.subviews objectAtIndex:i];
        // keyboard view found; add the customization to it
        if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
            UIView *customView = [[UIView alloc] init];
            // do stuff to customView here
            [keyboard addSubview:customView];
    }
}

Префикс @"<UIKeyboard" в этой строке if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) может отличаться. Таким образом, вы должны выполнить цикл один раз, используя NSLog, чтобы распечатать все описания подпредставлений, чтобы увидеть, какую строку вам нужно проверить.


А вот некоторая информация о предоставляемых клавиатурах по умолчанию (не настроенных)

UIKeyboardType - тип клавиатуры, отображаемой для данного текстового представления.

Проверьте эту страницу UIKeyboardType для изображений каждого типа клавиатуры.

Вот некоторые определения из Справочник по протоколу UITextInputTraits

typedef enum {
   UIKeyboardTypeDefault,
   UIKeyboardTypeASCIICapable,
   UIKeyboardTypeNumbersAndPunctuation,
   UIKeyboardTypeURL,
   UIKeyboardTypeNumberPad,
   UIKeyboardTypePhonePad,
   UIKeyboardTypeNamePhonePad,
   UIKeyboardTypeEmailAddress,
   UIKeyboardTypeDecimalPad,
   UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable
} UIKeyboardType;
  • UIKeyboardTypeDefault

Использовать клавиатуру по умолчанию для текущего метода ввода. Доступно в iOS 2.0 и более поздние версии.

  • UIKeyboardTypeASCIICapable

Используйте клавиатуру, которая отображает стандартные символы ASCII. Доступно в iOS 2.0 и более поздние версии.

  • UIKeyboardTypeNumbersAndPunctuation

Используйте цифры и знаки препинания. Доступно в iOS 2.0 и позже.

  • UIKeyboardTypeURL

Используйте клавиатуру, оптимизированную для ввода URL. Этот тип имеет «.», «/», и «.com» заметно. Доступно в iOS 2.0 и более поздних версиях.

  • UIKeyboardTypeNumberPad

Используйте цифровую клавиатуру, предназначенную для ввода PIN-кода. Этот тип имеет номера от 0 до 9 заметно. Этот тип клавиатуры не поддерживает Автоматическая замена строчных букв заглавными. Доступно в iOS 2.0 и более поздних версиях.

  • UIKeyboardTypePhonePad

Используйте клавиатуру, предназначенную для ввода телефонных номеров. Этот тип содержит цифры от 0 до 9 и символы «*» и «#» заметно. Этот тип клавиатуры не поддерживает автокапитализацию. Доступно в iOS 2.0 и более поздних версиях.

  • UIKeyboardTypeNamePhonePad

Используйте клавиатуру, предназначенную для ввода имени или номера телефона человека. Этот тип клавиатуры не поддерживает автокапитализацию. Доступно в iOS 2.0 и более поздние версии.

  • UIKeyboardTypeEmailAddress

Используйте клавиатуру, оптимизированную для указания адресов электронной почты. Этот тип выделяется символами «@», «.» и пробелами. Доступно в iOS 2.0 и более поздние версии.

  • UIKeyboardTypeDecimalPad

Используйте клавиатуру с цифрами и десятичной точкой. Доступно в iOS 4.1 и позже.

  • UIKeyboardTypeAlphabet

Запрещены. Вместо этого используйте UIKeyboardTypeASCIICapable. Доступно в iOS 2.0 и позже.

0 голосов
/ 28 сентября 2011

Помимо создания собственной клавиатуры (это не так сложно), используйте UITextField и метод делегата для фильтрации ввода.

...