Ios 第8条。在选择时关闭UIPickerView单击swift

Ios 第8条。在选择时关闭UIPickerView单击swift,ios,swift,uipickerview,Ios,Swift,Uipickerview,我确实有一个用选择选项填充的UIPicker视图。我选择其中一个并单击,但UIViewPicker不会关闭。如何关闭它或至少触发事件,以便以编程方式隐藏它 我查看了UIPickerViewDelegate,但没有找到任何合适的方法,该方法不会在项目选择上执行,而是仅在单击所选项目时执行 谢谢你的帮助 使用UIPickerView的委托方法,如下面所示 (void)pickerView:(UIPickerView*)pickerView未选择行:(NSInteger)行不完整项:(NSInteg

我确实有一个用选择选项填充的UIPicker视图。我选择其中一个并单击,但
UIViewPicker
不会关闭。如何关闭它或至少触发事件,以便以编程方式隐藏它

我查看了
UIPickerViewDelegate
,但没有找到任何合适的方法,该方法不会在项目选择上执行,而是仅在单击所选项目时执行


谢谢你的帮助

使用UIPickerView的委托方法,如下面所示

  • (void)pickerView:(UIPickerView*)pickerView未选择行:(NSInteger)行不完整项:(NSInteger)组件{

    yourTextField.text = [yourArray objectAtIndex:row];
    thePickerView.hidden = YES;
    
    }

更新

您可以将UIApgestureRecognitor添加到UIPickerView:

UITapGestureRecognizer*tapGR=[UITapGestureRecognizer alloc]initWithTarget:self 操作:@selector(pickerViewTapped); [pickerView AddGestureRecognitor:tapGR]

然后:

  • (无效)pickerViewTapped{ //解雇挑选者。 }

一旦用户使用textFieldDidBeginEditing函数单击文本字段,您就可以使选择器可见,然后使用didSelectRow函数隐藏

    func textFieldDidBeginEditing(textField: UITextField) {

        myPicker.hidden = false

    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

        myTextField.text = myPicker[row]
        myPicker.hidden = true

    }
我还建议您添加touchesbearth函数,以便在用户触摸picker视图之外的屏幕任何部分时将其隐藏

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {

         myPicker.hidden = true

    }

当然,我假设您已经为UIPickerView完成了所有必需的数据源和委托链接以及函数…

在didSelectRow方法中,只需在交互结束时添加这一行:

self.view.endEditing(true)

更改选择时会执行此操作。我需要在实际单击所选项目时执行的方法。@您只能在“选取器”视图中更改选择。如何在“选取器”视图中单击?是的,您可以在“选取器”视图中旋转和更改选项,但一旦找到所需选项,您所做的就是单击它并拾取er视图消失了。如果我把它放在pickerView方法中,它会在我单击更改完成之前隐藏它。你明白我的意思了吗?