Я пытаюсь добавить пользовательскую кнопку «Готово» на UIKeyboard (в частности, цифровую клавиатуру).Я следовал за всеми примерами, чтобы сделать это онлайн, но я не могу заставить кнопку появляться выше клавиатуры.Ниже приведен мой код (в основном исправленный вместе из онлайн-примеров):
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(214, 427, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
[doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView *keyboard;
for(int i=0; i<[tempWindow.subviews count]; i++)
{
keyboard = [tempWindow.subviews objectAtIndex:i];
if([[keyboard description] hasPrefix:@"<UIKeyboardTypeNumberPad"] == YES)
[keyboard addSubview:doneButton];
}
Я что-то не так делаю?
(этот код вызывается после отображения клавиатуры).
РЕДАКТИРОВАТЬ:
Я показываю клавиатуру в контроллере модального представления, который является дочерним для UINavigationController.Во всем примере кода, который я пробовал, проблема, кажется, заключается в следующей строке:
if([[keyboard description] hasPrefix:@"<UIKeyboardTypeNumberPad"] == YES)
, которая возвращает NO.Я проверил это с помощью уведомления UIKeyboardDidShow, поэтому клавиатура определенно видна при вызове кода.