Iphone 如何在ios中取消UIPickerView

Iphone 如何在ios中取消UIPickerView,iphone,ios,uipickerview,uitouch,Iphone,Ios,Uipickerview,Uitouch,在我的应用程序中,我的添加联系人页面中有pickerviews。我给出了下面的“touchesbreated”方法。但即使在我单击要设置的值时,它也会取消选取器。例如,如果我从首选电话选择器中单击“homephone”,选择器将被解除,而不是设置值。只有当我在选择器外部单击时,我才需要解雇选择器。谁能帮我修一下这个 -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self.AddView endEditin

在我的应用程序中,我的添加联系人页面中有pickerviews。我给出了下面的“touchesbreated”方法。但即使在我单击要设置的值时,它也会取消选取器。例如,如果我从首选电话选择器中单击“homephone”,选择器将被解除,而不是设置值。只有当我在选择器外部单击时,我才需要解雇选择器。谁能帮我修一下这个

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
 [self.AddView endEditing:YES];
}
在代码中:

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

 [self dismissViewControllerAnimated:YES completion:nil];

}

或者您可以在PickerView下放置一个更大的按钮,使其颜色清晰、自定义和标注全屏,然后在
(iAction)
中使用Dismission,当您在picker外部点击时,您的视图将被取消

- (IBAction)buttonClear:(id)sender {

[self dismissViewControllerAnimated:YES completion:nil];

}
请尝试以下代码:

UITapGestureRecognizer *single_tap_recognizer;

    single_tap_recognizer = [[[UITapGestureRecognizer alloc]
                              initWithTarget : self.view
                              action         : @selector(upper_button_view_tapped)]
                             autorelease];

    [single_tap_recognizer setNumberOfTouchesRequired : 1];
    [self.view addGestureRecognizer : single_tap_recognizer];

-(void)upper_button_view_tapped
{
 [self .view endEditing:YES];
}
希望它对您有所帮助

您可以使用

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  UITouch *touch = [touches anyObject];
  if ([touch view] != pickerview)
     [self.AddView endEditing:YES];
}

当触摸位于选择器视图外部时,此选项将用于重新编辑

在选择器视图下放置一个较大的按钮,使其颜色清晰、自定义和标注全屏,然后在(iAction)内部使用“取消”,当您点击选择器外部时,您的视图将被取消;)我在我的帖子上添加了一个代码