Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios textfielddidediting在swift3中使用PickerView时未触发_Ios_Swift3_Delegates_Uitextfield_Uipickerview - Fatal编程技术网

Ios textfielddidediting在swift3中使用PickerView时未触发

Ios textfielddidediting在swift3中使用PickerView时未触发,ios,swift3,delegates,uitextfield,uipickerview,Ios,Swift3,Delegates,Uitextfield,Uipickerview,在Swift 3中使用选择器视图时,文本字段委托方法textfielddidediting未触发。我怎么称呼它?没有动态调用委托的按钮 你可以在下面看到我的代码 import UIKit class ThroewViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource,UITextFieldDelegate { @IBOutlet weak var pickerText: UIText

在Swift 3中使用选择器视图时,文本字段委托方法
textfielddidediting
未触发。我怎么称呼它?没有动态调用委托的按钮

你可以在下面看到我的代码

import UIKit

class ThroewViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource,UITextFieldDelegate {



    @IBOutlet weak var pickerText: UITextField!


    let thePicker = UIPickerView()
    var dashTitle_Arr = ["One","Two","Three","Four","Five","Six"]

    override func viewDidLoad() {
        super.viewDidLoad()

        pickerText.delegate = self
       thePicker.dataSource = self
        thePicker.delegate = self
       pickerText.inputView = thePicker



    }


    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

        return dashTitle_Arr .count
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {


        return dashTitle_Arr [row]     }

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


        pickerText.text = dashTitle_Arr [row]

    }

    func textFieldDidEndEditing(_ textField: UITextField) {
        addIntoArray(text: textField.text)
    }

    func addIntoArray(text: String?) {

        guard let text = text, text.characters.count > 0 else {

            return
        }

        dashTitle_Arr.append(text)
        thePicker.reloadAllComponents()
    }
}


有一个属性
选择器视图
附件视图
。使用
done
cancel
按钮创建
工具栏
,并在选择器视图的
assessoriesView
中进行设置

在工具栏的
按钮中
操作
写入
文本字段。resignFirstResponder()
在此之后,
textfielddidediting
delegate方法被激发


这对我来说很好。希望它能帮助你。谢谢

在didSelectRow委托方法中,您可以强制结束对textField的编辑,只需在该方法中添加一行:pickerText.resignFirstResponder。实际上,我需要将字符串附加到需要保存在该数组中的数组对象,但它不起作用。您必须将该行放在pickerText.text=dashTitle\u Arr[row]之后这条线。还是不工作?让我知道