objective-c - 为什么我必须点击 UIDatePicker 两次才能设置时间?

标签 objective-c ios6 uidatepicker

我有一个 UIDatePicker,我想将其设置为文本字段中的字符串值。当我点击第二个文本字段时,我希望 UIDatePicker 获取第一个文本字段中的值并将其用作 datePicker 中的开始时间。

这可以正常工作,但仅当我点击第二个文本字段两次时。我第一次点击它时,文本字段被选中(变成黄色),并且时间设置为每次上午 6:00!当我再次点击文本字段时,时间选择器设置正确...

这是点击一次的结果:

enter image description here

这是第二次点击的结果:

enter image description here

更新:这是为点击实现的代码:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

[textField resignFirstResponder];   //  don't display the k/b

if (textField.tag == kStartTimeTag)  {
    textFieldTag = kStartTimeTag;
    textField.backgroundColor = [UIColor colorWithRed:252.0/255.0 green:255.0/255.0 blue:197.0/255.0 alpha:1.0];
}
else if (textField.tag == kEndTimeTag)  {
    textField.backgroundColor = [UIColor colorWithRed:252.0/255.0 green:255.0/255.0 blue:197.0/255.0 alpha:1.0];    
    textFieldTag = kEndTimeTag;

    //  now, set end time equal to start time
    [self.oTimePicker setDate:dateFromString(oStartTime.text, @"HH:mm")];

}

return NO;

}

有没有办法让这个在第一次点击时就起作用?

最佳答案

我不确定您的代码有什么问题,因为您没有显示您在函数 dateFromString() 中所做的事情。只需点击一下下面的代码即可为我工作:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

    [textField resignFirstResponder];   //  don't display the k/b

    if (textField.tag == 1)  {
        textField.backgroundColor = [UIColor colorWithRed:252.0/255.0 green:255.0/255.0 blue:197.0/255.0 alpha:1.0];
    }
    else if (textField.tag == 2)  {
        textField.backgroundColor = [UIColor colorWithRed:252.0/255.0 green:255.0/255.0 blue:197.0/255.0 alpha:1.0];
        NSDate *startDate = [self timeFromString:self.oStartTime.text];
        [self.oTimePicker setDate:startDate];
    }
    return NO;
}

-(NSDate *)timeFromString:(NSString *)  timeString {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"HH:mm";
    return [formatter dateFromString:timeString];
}

关于objective-c - 为什么我必须点击 UIDatePicker 两次才能设置时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17911754/

相关文章:

objective-c - NSWindow 的 -toggleFullScreen : method loses keyboard focus?

ios - 如何初始化 NSString 的 NSArray?

iphone - 我无法在 UITabBar 中重新排列 UITabBarItem

ios - UIDatePicker事件已更改

ios - 如何检测 iOS 中最近的小按钮的点击?

objective-c - 用于 objective-c 应用程序的 Google API

objective-c - 在 objective-c 中将一个图像放在另一个图像之上用于按钮

ios - preferredInterfaceOrientationForPresentation 必须返回支持的界面方向

swift - UIDatePicker 的日期无法正确打印

ios - 添加 UIPickerView 和 UIDatePickerView - 在 UITableViewController 中