Я работаю над довольно простым приложением для iPhone, чтобы решить квадратное уравнение, главным образом потому, что это так просто - по крайней мере, концепции и математика!
Я создал интерфейс в Интерфейсном Разработчике, который имеет пару Меток, 3 текстовых поля (varAfield и т. Д.) И кнопку Решить. 3 текстовых поля, которые установлены как UITextFieldDelegate, были установлены так, чтобы они автоматически отображали клавиатуру «Цифры и пунктуация».
Этот код используется, чтобы закрыть клавиатуру, а затем автоматически перейти к следующей переменной, когда пользователь нажимает клавишу возврата (которая говорит «Далее», за исключением переменной С, которая говорит «Готово»
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
if (theTextField == varAfield) {
[varAfield resignFirstResponder];
[varBfield becomeFirstResponder];
}
if (theTextField == varBfield) {
[varBfield resignFirstResponder];
[varCfield becomeFirstResponder];
}
if (theTextField == varCfield) {
[varCfield resignFirstResponder];
}
return YES;
}
Во всяком случае, проблема возникает с первым экземпляром становленияFirstResponder. Клавиатура появляется, как и должно быть, однако она использует ASCII-клавиатуру вместо «Цифры и Знаки пунктуации». Во второй раз, когда она вызывается, она работает как надо. Кроме того, если я снова начну с переменной A, она будет работать нормально. Независимо от того, куда я переместил первый экземпляр сталFirstResponder, первый (и только первый) раз, когда он вызывается в приложении, он не будет работать правильно.
Обновление: становится все равно (даже в первом случае), чтобы становиться верным, но не зависимо от того, какая клавиатура установлена, она все равно показывает «ASCII Capable». Так, что происходит? Я проверил все в IB, и, похоже, все в порядке ...