通过这个板上人们的出色帮助,我几乎为我的学生完成了我的应用程序!我能够在具有上一个和下一个按钮的键盘上显示一个工具栏。然后我让按钮在三个输入字段之间移动。
如果用户从第一个字段开始,他们可以在所有字段之间来回切换,就像我认为如果他们使用 prev/next 按钮一样。但是,如果用户在文本字段 3 上然后单击第一个字段,则按钮将保持原样,然后无法正常工作。
-(void)keyboardWillShow:(id)sender{
if ([inputA isFirstResponder]) {
[nextButton setEnabled:YES];
[previousButton setEnabled:NO];
} else if ([inputB isFirstResponder]) {
[nextButton setEnabled:YES];
[previousButton setEnabled:YES];
} else if ([inputC isFirstResponder]) {
[nextButton setEnabled:NO];
[previousButton setEnabled:YES];
}
}
...循环浏览下一个文本字段
-(void)nextField:(id)sender{
if ([inputA isFirstResponder]) {
[inputB becomeFirstResponder];
[previousButton setEnabled:YES];
[nextButton setEnabled:YES];
} else if ([inputB isFirstResponder]) {
[inputC becomeFirstResponder];
[previousButton setEnabled:YES];
[nextButton setEnabled:NO];
} else if ([inputC isFirstResponder]) {
[inputB becomeFirstResponder];
[previousButton setEnabled:YES];
[nextButton setEnabled:YES];
}
}
...循环浏览以前的文本字段
-(void)previousField:(id)sender{
if ([inputC isFirstResponder]) {
[inputB becomeFirstResponder];
[nextButton setEnabled:YES];
[previousButton setEnabled:YES];
} else if ([inputB isFirstResponder]) {
[inputA becomeFirstResponder];
[nextButton setEnabled:YES];
[previousButton setEnabled:NO];
} else if ([inputA isFirstResponder]) {
[inputB becomeFirstResponder];
[nextButton setEnabled:YES];
[previousButton setEnabled:YES];
}
}
在我的键盘代码中,上一个按钮调用previousField,下一个按钮调用nextField。我想当我做keyboardWillShow时,我将不同的输入设置为第一响应者,但这只是在第一次运行时。
有没有办法让用户点击该字段时成为第一响应者?