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 で機能させる必要があります。
どうすればこれを機能させることができますか?これらのパスのいずれかが正しい方向に進んでいますか?
助けてくれてありがとう。