Fah*_*kar 2 objective-c datepicker uitextfield ios
我有三个文本域.
vacDate
vacTime
vacType
Run Code Online (Sandbox Code Playgroud)
当我点击vacDate或vacTime,我显示datepicker myDatePicker.
此外,当我点击任何地方时,我会调用hideAllKeyboards,它隐藏所有键盘和日期选择器.
- (void)textFieldDidBeginEditing:(UITextField *)textField {
NSLog(@"textFieldDidBeginEditing===%@" , textField.text);
CGAffineTransform translation = CGAffineTransformIdentity;
myDatePicker.hidden = YES;
if (textField==vacDate || textField==vacTime) {
[vacDate resignFirstResponder];
[vacTime resignFirstResponder];
[vacType resignFirstResponder];
myDatePicker.hidden = NO;
}
if (textField==vacType) {
translation = CGAffineTransformMakeTranslation(0, -60);
}
[UIView beginAnimations:nil context:nil];
self.view.transform = translation;
[UIView commitAnimations];
}
-(IBAction)hideAllKeyboards {
NSLog(@"hideAllKeyboards...");
[vacDate resignFirstResponder];
[vacTime resignFirstResponder];
[vacType resignFirstResponder];
myDatePicker.hidden = YES;
NSLog(@"my date data is %@", myDatePicker.date);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSString *strDate = [dateFormatter stringFromDate:[myDatePicker date]];
NSLog(@"my date is ::: %@", strDate);
vacDate.text = strDate;
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh mm a"];
strDate = [dateFormatter stringFromDate:[myDatePicker date]];
NSLog(@"my date is ==%@==", strDate);
strDate = [strDate stringByReplacingOccurrencesOfString:@" " withString:@":"];
strDate = [strDate stringByReplacingOccurrencesOfString:@":A" withString:@" A"];
strDate = [strDate stringByReplacingOccurrencesOfString:@":P" withString:@" P"];
vacTime.text = strDate;
[UIView beginAnimations:nil context:nil];
self.view.transform = CGAffineTransformIdentity;
[UIView commitAnimations];
}
Run Code Online (Sandbox Code Playgroud)
以下是我正在做的事情.
点击vacDate然后设置时间.设置好时间后,点击任意位置.日期和时间在vacDate和vacTime中设置.现在我转到vacType并输入文本,然后单击"完成".现在所有的键盘都被隐藏了.
现在我再次点击vacType.现在我看到了键盘(默认).现在我点击vacDate或vacTime.在这里,我希望在第一步显示datepicker,但我看到默认键盘.
知道为什么resignFirstResponder不适用于所有键盘.由于键盘不调用resignFirstResponder,我无法看到datepicker.
使用我的代码,我注意到当我输入vacType然后单击返回到vacDate或vacTime时,我看到了datepicker的上半部分,但默认键盘没有被隐藏.我仍然看到默认键盘.我想强有力地隐藏这个键盘.
怎么用endEditing隐藏你的键盘而不是resignFirstResponder: -
[self.view endEditing:YES];
Run Code Online (Sandbox Code Playgroud)
编辑
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { {
NSLog(@"textFieldDidBeginEditing===%@" , textField.text);
CGAffineTransform translation = CGAffineTransformIdentity;
if (textField==vacDate || textField==vacTime) {
[self.view endEditing:YES];
[UIView beginAnimations:nil context:nil];
self.view.transform = translation;
[UIView commitAnimations];
myDatePicker.hidden = NO;
return NO;
}
else
{
if (textField==vacType) {
translation = CGAffineTransformMakeTranslation(0, -60);
}
[UIView beginAnimations:nil context:nil];
self.view.transform = translation;
[UIView commitAnimations];
myDatePicker.hidden = YES;
return YES;
}
}
Run Code Online (Sandbox Code Playgroud)
注意:-
而不是Textfiled像if(textField == vacType)一样 检查在UI中使用UITextfiled或以编程方式使用Tag.这是检查text filed您正在编辑哪个的更好选项.喜欢if(textfiled.tag == 1)
| 归档时间: |
|
| 查看次数: |
5316 次 |
| 最近记录: |