Ios 如果用户在其他位置单击UIPickerView,如何使UIPickerView辞职FirstResponder

Ios 如果用户在其他位置单击UIPickerView,如何使UIPickerView辞职FirstResponder,ios,objective-c,xcode,uipickerview,Ios,Objective C,Xcode,Uipickerview,我创建了UIPickerView,如下所示。现在我想让它辞职FirstResponder如果用户点击其他地方然后UIPickerView我怎么能做到这一点。我已经按照以下方式创建了UIPickerView。我还能在哪里处理它 [pickerView removeFromSuperview] -(void)pickerview:(id)sender { _items =[[NSArray alloc]initWithObjects:@"Hindi",@"English",@"In what

我创建了UIPickerView,如下所示。现在我想让它辞职FirstResponder如果用户点击其他地方然后UIPickerView我怎么能做到这一点。我已经按照以下方式创建了UIPickerView。我还能在哪里处理它

[pickerView removeFromSuperview]

-(void)pickerview:(id)sender
{
    _items =[[NSArray alloc]initWithObjects:@"Hindi",@"English",@"In what city were you born?",
             @"What was your childhood nickname?",
             @"Type your own question.",nil];

    pickerView=[[UIPickerView alloc] initWithFrame:CGRectMake(10,350,300,300)];

    pickerView.transform = CGAffineTransformMakeScale(0.75f, 0.75f);
    pickerView.delegate = self;
    pickerView.dataSource = self;
    pickerView.showsSelectionIndicator = YES;
    pickerView.backgroundColor = [UIColor lightGrayColor];
    [pickerView selectRow:1 inComponent:0 animated:YES];
  //  [self.view addSubview:pickerView];
    [contentView addSubview:pickerView];


}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
{

    return 1;

}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{

    return [_items count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
        return[_items objectAtIndex:row];

}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
    [Txt_SecurityQue setText:[_items objectAtIndex:row]];
     NSLog(@"Did select");
}

或者,您可以简单地添加:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
      [pickerView removeFromSuperview]; 
        // write resignFirstResponder code......
}

或者,您可以简单地添加:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
      [pickerView removeFromSuperview]; 
        // write resignFirstResponder code......
}


Swift 4

重写ToucheSBegind方法,该方法在用户点击pickerView外部的视图时调用。然后,只需调用hide-pickerview即可

override func touchesBegan(_ touches: Set<UITouch>, with event:   UIEvent?) {
    pickerView.isHidden = true
}
override func touchsbegind(touch:Set,带有事件:UIEvent?){
pickerView.ishiden=true
}
关于如何使用触摸屏的进一步阅读开始:
Swift 4

重写ToucheSBegind方法,该方法在用户点击pickerView外部的视图时调用。然后,只需调用hide-pickerview即可

override func touchesBegan(_ touches: Set<UITouch>, with event:   UIEvent?) {
    pickerView.isHidden = true
}
override func touchsbegind(touch:Set,带有事件:UIEvent?){
pickerView.ishiden=true
}
关于如何使用触摸屏的进一步阅读开始:

对不起,伙计,它不起作用了。不管怎样,谢谢你的建议。从其他地方我必须调用这个函数它是UIResponder的委托方法,所以你不需要调用它。当你触摸屏幕时,它会调用。并检查您的视图userInteractionEnabled是否启用。对不起,伙计,它不工作。不管怎样,谢谢你的建议。从其他地方我必须调用这个函数它是UIResponder的委托方法,所以你不需要调用它。当你触摸屏幕时,它会调用。并检查您的视图userInteractionEnabled是否启用。