Swift 为什么我的pickerview没有';是否在某些文本字段上不显示?

Swift 为什么我的pickerview没有';是否在某些文本字段上不显示?,swift,uitextfield,uipickerview,Swift,Uitextfield,Uipickerview,我找到了向应用程序添加带字段的选择器视图的方法。我添加了三个字段: @IBOutlet weak var position: UITextField! @IBOutlet weak var emplFilter: UITextField! @IBOutlet weak var locFilter: UITextField! 以及表示当前文本字段和选择器的变量: var currentTextField = UITextField() var currentPicker = UIPickerVi

我找到了向应用程序添加带字段的选择器视图的方法。我添加了三个字段:

@IBOutlet weak var position: UITextField!
@IBOutlet weak var emplFilter: UITextField!
@IBOutlet weak var locFilter: UITextField!
以及表示当前文本字段和选择器的变量:

var currentTextField = UITextField()
var currentPicker = UIPickerView()
还添加了以下实现:

UITableViewDelegate, UITableViewDataSource,UITextFieldDelegate,UIPickerViewDelegate,UIPickerViewDataSource
添加了所有方法:

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        if currentTextField == locFilter{
            return location.count
        }else if currentTextField == test{
            return proffestion.count
        }else if currentTextField == emplFilter{
            return employer.count
        }else{
            return 0
        }
    }
    
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        if currentTextField == locFilter{
            return location[row].name
        }else if currentTextField == test{
            return proffestion[row].name
        }else if currentTextField == emplFilter{
            return employer[row].name
        }else{
            return ""
        }
    }
    
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        if currentTextField == locFilter{
            
            locFilter.text = location[row].name
            filters!["location"] = location[row].id
            self.view.endEditing(true)
            
        }else if currentTextField == test{
            
            filters!["prof"] = proffestion[row].id
            test.text =  proffestion[row].name
            self.view.endEditing(true)
            
        }else if currentTextField == emplFilter{
            
            emplFilter.text = employer[row].name
            filters!["employer"] = "\(String(describing: employer[row].id))"
            self.view.endEditing(true)
        }
    }
    
    
    func textFieldDidBeginEditing(_ textField: UITextField) {
        self.currentPicker.delegate = self
        self.currentPicker.dataSource = self
        
        print("click")
        
        
        currentTextField = textField
        
        
        if currentTextField == locFilter{
            currentTextField.inputView = currentPicker
        }else if currentTextField == test{
           currentTextField.inputView = currentPicker
        }else if currentTextField == emplFilter{
           currentTextField.inputView = currentPicker
        }
        
        self.currentPicker.delegate = self
        self.currentPicker.dataSource = self
    }

这里我有一个问题——当我点击
position
字段时,我在日志中看不到任何输出。我不明白为什么会发生这种情况,我试图添加另一个字段,但没有改变情况。我尝试使用另一个数组,但也没有看到任何选择器视图。我试图在Internet上寻找任何可能的解决方案,但没有成功:(

设置
位置的
代理
应该可以解决这个问题

position.delegate = self

我还想指出,每次文本字段开始编辑时,您不需要重复设置
UIPickerView的
delegate
dataSource

文本字段委托在哪里设置?在故事板上,如video@Frankenstein,非常感谢:)我没有为这个字段设置委托:)@Frankenstein,如果你愿意,你可以发布一个答案,我会申请的。我是iOS开发新手,这就是我犯这个错误的原因:(没关系。即使是有经验的开发人员也会犯这个错误。不客气。你可以将
currentPicker.delegate=self
移动到
viewDidLoad
。但在视频中,这个委托具有字段选择功能,这是错误的吗?