На этой странице есть большое руководство по настройке клавиатуры . Похоже, вы можете использовать это, чтобы скрыть ненужные кнопки или изменить текущие кнопки.
Как правило, вы должны зарегистрироваться в качестве наблюдателя для 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;
Использовать клавиатуру по умолчанию для текущего метода ввода. Доступно в
iOS 2.0 и более поздние версии.
- UIKeyboardTypeASCIICapable
Используйте клавиатуру, которая отображает стандартные символы ASCII. Доступно в
iOS 2.0 и более поздние версии.
- UIKeyboardTypeNumbersAndPunctuation
Используйте цифры и знаки препинания. Доступно в iOS 2.0 и
позже.
Используйте клавиатуру, оптимизированную для ввода URL. Этот тип имеет «.», «/»,
и «.com» заметно. Доступно в iOS 2.0 и более поздних версиях.
Используйте цифровую клавиатуру, предназначенную для ввода PIN-кода. Этот тип имеет
номера от 0 до 9 заметно. Этот тип клавиатуры не поддерживает
Автоматическая замена строчных букв заглавными. Доступно в iOS 2.0 и более поздних версиях.
Используйте клавиатуру, предназначенную для ввода телефонных номеров. Этот тип
содержит цифры от 0 до 9 и символы «*» и «#»
заметно. Этот тип клавиатуры не поддерживает автокапитализацию.
Доступно в iOS 2.0 и более поздних версиях.
- UIKeyboardTypeNamePhonePad
Используйте клавиатуру, предназначенную для ввода имени или номера телефона человека.
Этот тип клавиатуры не поддерживает автокапитализацию. Доступно в
iOS 2.0 и более поздние версии.
- UIKeyboardTypeEmailAddress
Используйте клавиатуру, оптимизированную для указания адресов электронной почты. Этот тип
выделяется символами «@», «.» и пробелами. Доступно в
iOS 2.0 и более поздние версии.
Используйте клавиатуру с цифрами и десятичной точкой. Доступно в iOS 4.1
и позже.
Запрещены. Вместо этого используйте UIKeyboardTypeASCIICapable. Доступно в iOS
2.0 и позже.