0

UItextField で正しい時刻のエラー チェックを実行しようとしています。ユーザーが入力している間にエラーがポップアップすることを望まなかったので (最初に修正する機会を与えるため)、EditingDidEnd アクション中にチェックを行うと考えました。時間、分、秒用に設定しました。inHours で試したコードは次のとおりです。

- (IBAction)inHourEditEnd:(id)sender
{
   // Check to make sure value is between 0 & 23 Hours
   if ([[[self inHour] text] intValue] >= 0 && [[[self inHour] text] intValue] < 24) {
      [self updateDuration];
   } else {
      NSString *errorDescription = [NSString stringWithFormat:@"%@ hours is not a valid start time. Please enter an hour between 0 and 23", [[self inHour] text]];
      UIAlertView *errorMessage = [[UIAlertView alloc] initWithTitle:@"Ivalid Hour for Start Time"
                                                                   message:errorDescription
                                                                  delegate:self
                                                         cancelButtonTitle:@"OK"
                                                         otherButtonTitles:nil];
            [errorMessage show];
            [_inHour becomeFirstResponder];
        }

    }

アラートは正常に機能しますが、アラートを表示した後、テキスト フィールド (inHour) に戻りません。EditingDidEnd を引き起こすためにタップした textField にとどまります。ここで検索すると、次のコードを使用して、alertView でユーザーを正しいテキスト ボックスに戻す方法が見つかりました。

- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
   //Checks For Approval
   if (buttonIndex == 0) {
      [_inHour becomeFirstResponder];
   }
}

しかし、これは最初のボックスでのみ機能し、inHour、inMinute、inSeconds で機能させる必要があります。

どうすればこれを機能させることができますか?これらのパスのいずれかが正しい方向に進んでいますか?

助けてくれてありがとう。

4

1 に答える 1