【问题标题】:hide the keyboard if action sheet is going to popup如果要弹出操作表,则隐藏键盘
【发布时间】:2011-09-11 15:20:03
【问题描述】:

我有一个应用程序,其中有 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)];

    }
}

【问题讨论】:

    标签: ios xcode4 ios4


    【解决方案1】:

    在你的 ViewController 中调用它

    [self.view endEditing:NO];
    

    【讨论】:

      【解决方案2】:

      您是否尝试过实现UITextFieldDelegate 协议方法- (void)textFieldDidEndEditing:(UITextField *)textField?每当 UITextField 失去焦点时都会调用该方法,例如,当用户点击视图中的另一个元素时。

      试着把它放在你的委托类中:

      - (void)textFieldDidEndEditing:(UITextField *)textField {
          [textField resignFirstResponder];
      }
      

      此外,请确保将文本字段的委托设置为实现上述方法的类。希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2011-10-11
        • 2016-02-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-08
        • 1970-01-01
        • 2013-06-14
        • 2018-03-19
        • 2011-12-13
        相关资源
        最近更新 更多