我有一个应用程序,其中我有2个文本字段。现在我的问题是,让我们说第一个用户点击普通文本字段。哪个会弹出键盘。然后,如果没有选择完成按钮,他会点击日期字段。哪个会弹出操作表(不解除键盘)。隐藏动作表后,用户必须点击其他文本字段并单击键盘的返回键。
如果要弹出操作表,我想隐藏键盘吗?
我的代码在
之下- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if([textField isEqual:txtdob])
{
[textField resignFirstResponder];
actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
[actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
// txtdob.inputView=actionSheet;
CGRect pickerFrame = CGRectMake(0, 40, 0, 0);
datepicker=[[UIDatePicker alloc] initWithFrame:pickerFrame];
datepicker.datePickerMode = UIDatePickerModeDate;
//[datepicker setMinimumDate:minDate];
[datepicker addTarget:self action:@selector(changeDateInLabel:) forControlEvents:UIControlEventValueChanged];
[actionSheet addSubview:datepicker];
[datepicker release];
UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Done"]];
closeButton.momentary = YES;
closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f);
closeButton.segmentedControlStyle = UISegmentedControlStyleBar;
closeButton.tintColor = [UIColor blueColor];
[closeButton addTarget:self action:@selector(dismissActionSheet) forControlEvents:UIControlEventValueChanged];
[actionSheet addSubview:closeButton];
[closeButton release];
[actionSheet showInView:self.view];
[actionSheet setBounds:CGRectMake(0, 0, 320, 485)];
}
}
答案 0 :(得分:1)
在ViewController中调用它
[self.view endEditing:NO];
答案 1 :(得分:0)
您是否尝试过实施UITextFieldDelegate
协议方法- (void)textFieldDidEndEditing:(UITextField *)textField
?只要UITextField失去焦点,就会调用该方法,例如,当用户点击视图中的另一个元素时。
尝试将它放在您的委托类中:
- (void)textFieldDidEndEditing:(UITextField *)textField {
[textField resignFirstResponder];
}
另外,请确保将textfields的委托设置为实现上述方法的类。希望这有帮助!