このボード上の人々の素晴らしい助けにより、私は生徒のためのアプリをほぼ完成させました! 前と次のボタンがあるキーボードの上にツールバーを表示することができました。次に、ボタンを 3 つの入力フィールドの間に配置しました。
ユーザーが最初のフィールドから開始すると、前/次のボタンを使用した場合と同じように、すべてのフィールド間を行き来できます。ただし、ユーザーがテキスト フィールド 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 を実行したときに、さまざまな入力をファーストレスポンダーとして設定していたと考えましたが、それは最初の実行時のみです。
ユーザーがフィールドをクリックするとファーストレスポンダーになるようにする方法はありますか?