我正在嘗試在UItextField中進行錯誤檢查以查找正確時間。我不想在用戶輸入時彈出一個錯誤(讓他們有機會首先修復它),所以我想我會在EditingDidEnd Action期間執行Check。我爲小時,分鐘和秒設置了一些。這裏是我試過inHours代碼:無法在EditingDidEnd中設置BecomeFirstResponder動作
- (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工作,很快。
任何建議如何使這項工作? 這些路徑中的哪一個朝着正確的方向?
謝謝你的幫助。
textFieldShouldEndEditing正是我所期待的。以爲editingDidEnd是我唯一的選擇。謝謝,完美的作品。 – Brad