2013-07-04 72 views
2

在我的應用中,我在我的添加聯繫頁面中有pickerviews。我給出了以下'touchesBegan'方法。但即使當我點擊一個值來設置,它也會關閉選取器。例如,如果我從首選手機選擇器點擊「家庭電話」,則選擇器將被解散而不是設置該值。我只需要點擊選擇器外部的選取器即可解散。任何人都可以幫我解決這個問題。如何解除ios中的UIPickerView

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

回答

2

在您的代碼:

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

[self dismissViewControllerAnimated:YES completion:nil]; 

} 

也可以將PickerView下換上了更大的按鍵,使其色澤鮮明的定製和尺寸全屏,然後用(IBAction)內解僱,當你點擊在選擇器之外你的看法是駁回

- (IBAction)buttonClear:(id)sender { 

[self dismissViewControllerAnimated:YES completion:nil]; 

} 
+0

沒有FRND ..這不隱藏選擇器之外在外面點擊。 – Mano

+0

在PickerView下放置一個更大的按鈕,使其顏色清晰的自定義和尺寸全屏,然後使用IBAction內部的關閉,當你在選擇器外部點擊時,視圖被取消;)我添加一個代碼在我的帖子上 – BlackSheep

2

試試這個代碼:

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]; 
} 

希望它可以幫助你

6

您可以使用

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

這將被用來EndEdit中當觸摸是選擇器視圖