gpt4 book ai didi

iphone - 如果要弹出操作表,请关闭键盘

转载 作者:可可西里 更新时间:2023-11-01 06:22:33 28 4
gpt4 key购买 nike

我在 UIActionSheet 中有一个 UIDatePickerView 作为 UITextField 的输入。当关注 UITextField 时,UIActionSheet 将弹出而不是键盘。单击 UIActionSheet 中的完成按钮时,它将隐藏。我有几个其他文本字段表现正常(显示键盘)。

- (void)textFieldDidBeginEditing:(UITextField *)textField {
if ([textField isEqual:txtExpDate]) {
[textField resignFirstResponder];
[self showDatePicker];
}
}


- (void) showDatePicker{
UIActionSheet *datePickerActionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:@"Done" otherButtonTitles:nil];
datePickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 80, 0, 0)];
datePickerView.datePickerMode = UIDatePickerModeDate;
[datePickerActionSheet addSubview:datePickerView];
[datePickerActionSheet showInView:self.navigationController.view];
[datePickerActionSheet setBounds:CGRectMake(0, 0, 320, 500)];
[datePickerActionSheet release];

现在我的问题是,假设第一个用户点击普通文本字段。这将弹出键盘。然后他没有选择完成按钮,而是点击了日期字段。这将弹出操作表(不关闭键盘)。隐藏操作表后,用户必须点击其他文本字段并单击键盘的返回键。

如果要弹出操作表,我想隐藏键盘吗?

最佳答案

当您要调出操作表时,将文本字段设置为resignFirstResponder。如果您有多个文本字段,请在 .h 文件中创建一个 UITextField 类型的实例变量。

UITextField *currentTextField;

然后您可以在 textFieldDidBeginEditing: 方法中保留对当前文本字段的引用。

- (void)textFieldDidBeginEditing:(UITextField *)textField {

currentTextField = textField;
....

然后,在 showDatePicker 方法中调用[currentTextField resignFirstResponder]

- (void)showDatePicker {

[currentTextField resignFirstResponder];
UIActionSheet *datePickerActionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:@"Done" otherButtonTitles:nil];
...

编辑: @Samuel Goodwin 是正确的。我们不必跟踪文本字段。我们可以简单地执行以下操作来关闭键盘。

- (void)showDatePicker {

[self.view endEditing:YES];
...

关于iphone - 如果要弹出操作表,请关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6799453/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com