Хорошо, я постараюсь объяснить это как можно лучше. У меня есть приложение для iPhone, и у него есть текстовое поле, которое пользователь может только вводить Numbers. Не проблема. Тем не менее, на кнопке numpad нет кнопки, поэтому я не могу заставить ее исчезнуть. Я мог бы сделать кнопку, которую пользователь нажимает, чтобы отклонить клавиатуру, но я предпочел бы сделать кнопку, потому что экран «занят», как есть.Удалите кнопку «Готово» с цифровой клавиатуры на новой клавиатуре Загрузка
Ну, после некоторых исследований я наткнулся на this. Вау, это здорово. Однако у меня также есть другое текстовое поле, которое требует клавиатуры по умолчанию. И всякий раз, когда клавиатура появляется, независимо от типа, на ней есть кнопка «Готово».
Не хорошо.
Так что я еще немного копаю. Прочитайте комментарии, и люди упомянули способ избавиться от кнопки «Готово», используя свойство «Редактирование на начальном этапе», чтобы вызвать код «Готово», когда это необходимо. Я также получил это в основном. Если вы введете числовое поле и затем отпустите клавиатуру, а затем введите нормальное поле, кнопка «Готово» не появится.
Однако есть одна ошибка, в которой все еще появляется кнопка «Готово». Если вы нажмете «Числовое поле», а затем коснитесь поля «Нормальное», клавиатура никогда не «исчезнет», поэтому, даже если она изменится с цифровой клавиатуры на обычную клавиатуру, кнопка все еще присутствует. Я хочу удалить buttom из представления, но я не уверен, как это сделать. Это код, у меня есть ...
//Done button for numpad
- (void)keyboardWillShow:(NSNotification *)note {
if (showDoneButton == YES)
{
// create custom button
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(0, 163, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
if ([[[UIDevice currentDevice] systemVersion] hasPrefix:@"3"]) {
[doneButton setImage:[UIImage imageNamed:@"DoneUp3.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown3.png"] forState:UIControlStateHighlighted];
} else {
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
}
[doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
// 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 custom button to it
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
showDoneButton = NO; //This tells done button code to run or not
}
}
- (void)doneButton:(id)sender {
NSLog(@"Input: %@", playerOneLifeLabel.text);
NSLog(@"Input: %@", playerTwoLifeLabel.text);
[playerOneLifeLabel resignFirstResponder];
[playerTwoLifeLabel resignFirstResponder];
}
Когда NumPadfield запускает «редактирование было начать» вызывает эту функцию:
- (IBAction)needNumberPad:(id)sender{
showDoneButton = YES;
}
Который затем убеждается проделанная кнопка отображается. Когда делается код кнопки завершения, переменная (как показано выше) установлена на NO, поэтому она не появляется снова, если вы нажмете текстовое поле по умолчанию. По умолчанию для переменной Boolean установлено значение NO.
Что нужно сделать, если вы сразу же перейдете к редактированию поля numPad в поле по умолчанию, кнопка «Готово» исчезнет. Я могу поместить код в функцию, которая вызывается, когда «Редактирование закончилось», но я не знаю, что туда положить. Помощь будет оценена, я получил это далеко!
Спасибо!