我正在开发一个相当简单的 iPhone 应用程序来求解二次方程,主要是因为它非常简单——至少是概念和数学!
我在 Interface Builder 中创建了一个界面,它有几个标签、3 个文本字段(varAfield 等)和一个 Solve 按钮。设置为 UITextFieldDelegate 的 3 个文本字段已设置为自动显示“数字和标点符号”键盘。此代码用于关闭键盘,然后在用户点击返回键时自动移动到下一个变量(表示“下一步”,但变量 C 表示“完成”
- (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;
}
无论如何,问题出现在 becomeFirstResponder 的第一个实例上。键盘按应有的方式出现,但是,它使用的是 ASCII 键盘而不是“数字和标点符号”。第二次调用它时,它按应有的方式工作。另外,如果我再次从变量 A 开始,它将正常工作。无论我将 becomeFirstResponder 的第一个实例移动到哪里,第一次(也是唯一一次)在应用程序中调用它时,它的行为都不正确。
更新: becomeFirstResponder 仍然(即使在第一个实例上)尊重我选择的返回键,但无论设置哪个键盘,它仍然显示“ASCII Capable”。发生什么了?我已经检查了 IB 中的所有内容,它似乎没问题...