Если я не ошибаюсь, Вы хотите узнать, как добавить пользовательскую кнопку «Готово» на клавиатуру для UIKeyboardTypeNumberPad.В этом случае это может быть полезно.Объявите UIButton * doneButton in.h и добавьте следующий код в файл .m
- (void)addButtonToKeyboard {
// create custom button
if (doneButton == nil) {
doneButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 163, 106, 53)];
}
else {
[doneButton setHidden:NO];
}
[doneButton addTarget:self action:@selector(doneButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView* keyboard = nil;
for(int i=0; i<[tempWindow.subviews count]; i++) {
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard found, add the button
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
[keyboard addSubview:doneButton];
} else {
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
}
}
- (void)doneButtonClicked:(id)Sender {
//Write your code whatever you want to do on done button tap
//Removing keyboard or something else
}
Я использую то же самое в моем приложении, и таким образом настраивается рамка кнопки. Таким образом, можно вызвать [self addButtonToKeyboard]всякий раз, когда вам нужно показать готовую кнопку на клавиатуре.UIKeyboardTypeNumberPad не имеет кнопки Готово в противном случае.